我做了一个Pong克隆,我遇到了一个问题。 KeyListener有时只能工作。没有我能找到的模式。
这里的参考是我的Pong.java(主要类):http://pastebin.com/8d7BqK4x
这是Board.java(Graphics和KeyListener):http://pastebin.com/0zb526BE
答案 0 :(得分:3)
KeyEvents仅在组件具有焦点时生成。
更好的方法是使用Key Bindings,即使组件没有焦点也能正常工作。
答案 1 :(得分:2)
由于焦点问题,通常你不想使用KeyListener(这可能是你的监听器有时只会监听的原因 - 可能你的监听组件失去了焦点,因此KeyListener失去了它的功能。
最好使用Key Bindings,你不必过多担心焦点问题以及你在处理更高级别构造的地方,Swing使用它来监听组件。教程将“向您展示道路”。