2017-10-17 58 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 
       }); 
相關問題