1

Pong のクローンを作成しましたが、問題が発生しました。KeyListener は時々しか機能しません。私が見つけることができたパターンはありません。

参考までに、私の Pong.java (メイン クラス) は次のとおりです: http://pastebin.com/8d7BqK4x

ここに Board.java (Graphics and KeyListener) があります: http://pastebin.com/0zb526BE

4

2 に答える 2

3

KeyEvents は、コンポーネントにフォーカスがある場合にのみ生成されます。

より良いアプローチは、コンポーネントにフォーカスがない場合でも機能するキー バインディングを使用することです。

于 2011-10-31T00:42:47.900 に答える
2

通常、フォーカスの問題のために KeyListener を使用したくありません (これが、リスナーが時々しかリッスンしない理由である可能性があります。リッスンするコンポーネントがフォーカスを失い、KeyListener がその機能を失う可能性があります。

フォーカスの問題についてあまり心配する必要がない場合や、Swing がコンポーネントをリッスンするために使用するより高いレベルの構造を扱っている場合は、キー バインディングを使用することをお勧めします。チュートリアルは「道を示す」ものです。

于 2011-10-31T00:43:47.670 に答える