我将问题提炼了,编了个实验的小窗口将注释部分变成可执行的话,键盘就响应不了了我想问大家,容器只要设置了布局,就不行了吗
package Test;import java.awt.*;
import java.awt.event.*;public class Frame2 extends Frame{
public Frame2(){
// this.add(new Button("试验"),BorderLayout.EAST);
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
System.out.println("djlkjakjfl");
super.keyPressed(e);
}
});
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
this.setBounds(0, 0, 600, 700);
this.setVisible(true);
}
public static void main(String args[]){
Frame2 f2=new Frame2();
}}有没有什么方法能够即安排布局管理器,又能读到键盘响应,我本来是设想在中间放游戏,底栏放一排按钮现在只能将按钮的现实都去掉,在屏幕上,用文字提醒,可以用键盘做哪些事情了
package Test;import java.awt.*;
import java.awt.event.*;public class Frame2 extends Frame{
public Frame2(){
// this.add(new Button("试验"),BorderLayout.EAST);
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
System.out.println("djlkjakjfl");
super.keyPressed(e);
}
});
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
this.setBounds(0, 0, 600, 700);
this.setVisible(true);
}
public static void main(String args[]){
Frame2 f2=new Frame2();
}}有没有什么方法能够即安排布局管理器,又能读到键盘响应,我本来是设想在中间放游戏,底栏放一排按钮现在只能将按钮的现实都去掉,在屏幕上,用文字提醒,可以用键盘做哪些事情了
应该是requestFocus方法吧
我没用过这个方法,你能不能示范一下,我看API,也不知道咋用就是让按钮显示,然后键盘也能读入
en 试了第一次一下可以,按了按钮之后焦点又在键盘上了,然后我将键盘的注册监听的内容设为将焦点放到Frame上,结果也不行,这Frame里面设成whlie 循环也不行不知道怎么办,难道专门设一个线程,不断地设他?,我觉得原理和while一样,应该也不行吧
广大高手,帮忙啊
package com.lee.test;import java.awt.*;
import java.awt.event.*;public class Frame2 extends Frame{
public Frame2(){
Button b1 = new Button("试验");
add(b1,BorderLayout.EAST);
//add(new Button("试验"),BorderLayout.EAST);
b1.addKeyListener(new KeyAdapter(){ //注意此处为b1添加键盘响应
public void keyPressed(KeyEvent e) {
System.out.println("djlkjakjfl");
super.keyPressed(e);
}
});
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
this.setBounds(0, 0, 600, 700);
this.setVisible(true);
}
public static void main(String args[]){
Frame2 f2=new Frame2();
}}
2.楼主请注意你的代码格式,并适当缩进,虽然这问题很小,但是这会让人觉得你的代码很丑,代码写的很不专业,也许我的也不是很好看。
3.建议您别总是喜欢省略代码例如://add(new Button("试验"),BorderLayout.EAST);这些代码写写也挺好的,省略了自己明白,别人不好看,虽然这样写很短小,匿名类除外哦。
希望你满意。