2017-10-17 21 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 
       });