KeyListener仅有时工作

时间:2011-10-31 00:36:51

标签: java keylistener pong

我做了一个Pong克隆,我遇到了一个问题。 KeyListener有时只能工作。没有我能找到的模式。

这里的参考是我的Pong.java(主要类):http://pastebin.com/8d7BqK4x

这是Board.java(Graphics和KeyListener):http://pastebin.com/0zb526BE

2 个答案:

答案 0 :(得分:3)

KeyEvents仅在组件具有焦点时生成。

更好的方法是使用Key Bindings,即使组件没有焦点也能正常工作。

答案 1 :(得分:2)

由于焦点问题,通常你不想使用KeyListener(这可能是你的监听器有时只会监听的原因 - 可能你的监听组件失去了焦点,因此KeyListener失去了它的功能。

最好使用Key Bindings,你不必过多担心焦点问题以及你在处理更高级别构造的地方,Swing使用它来监听组件。教程将“向您展示道路”。