java键盘监听器不起作用,求大神指点
importjavax.swing.event.*;importjavax.swing.JButton;importjavax.swing.JFrame;importja...
import javax.swing.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.*;
public class TankWar extends JFrame {
JButton bt;
JPanel p;
public TankWar(){
super("TankWar");
p=new JPanel();
bt=new JButton("test");
bt.requestFocus();
bt.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent e){
if(KeyEvent.VK_ESCAPE==e.getKeyCode()){
System.exit(0);
}
}
});
this.add(p);
p.add(bt);
p.setSize(80, 80);
bt.setSize(40, 30);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TankWar();
}
}
为什么我按 esc不能退出程序呢? 展开
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.*;
public class TankWar extends JFrame {
JButton bt;
JPanel p;
public TankWar(){
super("TankWar");
p=new JPanel();
bt=new JButton("test");
bt.requestFocus();
bt.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent e){
if(KeyEvent.VK_ESCAPE==e.getKeyCode()){
System.exit(0);
}
}
});
this.add(p);
p.add(bt);
p.setSize(80, 80);
bt.setSize(40, 30);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TankWar();
}
}
为什么我按 esc不能退出程序呢? 展开
2个回答
2013-12-04
展开全部
不要使用keyTyped、而是使用keyPressed方法
bt.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(KeyEvent.VK_ESCAPE==e.getKeyCode()){
System.exit(0);
}
}
});
bt.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(KeyEvent.VK_ESCAPE==e.getKeyCode()){
System.exit(0);
}
}
});
追问
可以了,可是为什么呢?其实我想做一个坦克大战游戏,我给JPanel加了一个监听,用来更改我的坦克位置属性,用一个timer来时刻刷新绘图,可是我的监听器不起作用。我用的keyadapter继承来的,这个大概会是什么问题呢,如果不忙的话我可以发过去源码您看一下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-04
展开全部
键盘监听器在加了监听器的组件获得焦点的时候才能用. 对于按钮来说, 通常按钮被点了之后, 上面会出一个方框, 证明按钮持有焦点, 你确认一下.
而且为什么要把键盘监听放在按钮上呢, 很不合理.
而且为什么要把键盘监听放在按钮上呢, 很不合理.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询