0

SWING を使用するゲームにキーボード ショートカットを追加したいと考えています。これまでのところ、次のコードを使用しています。

KeyboardFocusManager.getCurrentKeyboardFocusManager()
            .addKeyEventDispatcher(new KeyEventDispatcher() {


                @Override
                public boolean dispatchKeyEvent(KeyEvent e) { ... }

テスト目的で、このアプリケーションの 2 つのインスタンスを作成したいと思います (ネットワーク プレイのテスト)。問題は、ホットキーを使用すると、フォーカスされていないウィンドウがフォーカスを取得することです。(後で作成したウィンドウ。)

問題はそれだと思います

KeyboardFocusManager.getCurrentKeyboardFocusManager()

静的メソッドです (両方のインスタンスが同じ JVM から開始されます)。

私が考えることができる他の唯一のオプションは、すべてのコンポーネントがキーイベントを祖先の JFrame に委譲し、そこでそれらを 1 か所で処理できるようにすることでしたが、これには多くの定型コードが含まれ、これは醜いものになると思います。解決。

また、問題は通常のゲームプレイ中に発生することはなく、テスト中にのみ発生します。

4

1 に答える 1

5

SWING を使用するゲームにキーボード ショートカットを追加したい

次に、 Key Bindingsを使用する必要があります。

于 2013-10-18T16:54:45.480 に答える