2017-10-17 3 views
0

メインのJFrameと他のJDialogとJFrameを持つアプリケーションがあります。アプリケーションのすべてのKeyEventをキャッチ

私はF7を押すたびにスクリーンショットを撮ることができます。

私はメインフレームにKeyListenerを持っていますが、フレームがフォーカスを失ったときには機能しません。

KeyListenerをすべてのウィンドウに追加するよりも、私が望むことを達成するのに良い方法はありますか?

ありがとうございました。

答えて

0

私が探しているもの、KeyboardFocusManagerは、すべてのKeyEventをフォーカス要素にディスパッチする役割を果たしました。
動作方法は次のとおりです。

KeyboardFocusManager.getCurrentKeyboardFocusManager() 
       .addKeyEventDispatcher(e -> { 
        if (e.getKeyCode() == KeyEvent.VK_F7 && 
         e.getID() == KeyEvent.KEY_RELEASED) { 
         //do something 
        } 
        return true; //dispatch the event 
       }); 
関連する問題