日期:2014-05-20  浏览次数:20728 次

JPanel如何实现键盘监听
我是看了马士兵的坦克大战后,想自己编写一个,我比较常用的GUI是swing 而且,我是在JPanel里画坦克的,但是我想在JPanel里添加一个键盘监听器,用来控制坦克的移动,但是添加后没有用 然后我试了在JPanel里添加一个JTextFeild,然后对它添加键盘监听,是可以的,这是为什么 如何实现直接对JPanel的键盘监听

------解决方案--------------------
最简单的方法,在frame里addKeyListener(x)当然 x 应该是单独的类或者frame的内部类,总之要对frame可见,而panel只管画图其他不管。

你把tank的坐标放在 panel里了,暂时只有坐标还可以,要是tank的属性多了就不如单独封装在一个类里了。

如果就是要在panel里边控制,
你可以试试在 panel 里加个方法:
public void processParentEvent(AWTEvent e){
this.processEvent(e);
}
在frame里加:
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
p.processParentEvent(e);
}
});
这样frame所有的Event就交给panel来处理了