Java에서 사용자 키 입력을 지속적으로 모니터링
이 시나리오의 목표는 사용자가 다음과 같은 특정 키를 누르고 있는지 지속적으로 확인하는 것입니다.
다른 언어와 달리 Java에는 키 누름을 직접 확인하는 기본 기능이 없습니다. 대신, 주요 이벤트를 처리하기 위해 리스너 기반 접근 방식을 사용합니다.
해결책: KeyEventDispatcher
주요 이벤트를 효과적으로 모니터링하기 위해 Java는 KeyEventDispatcher 클래스를 제공합니다. 이 클래스를 사용하면 Java AWT(Abstract Window Toolkit) 이벤트 큐에 리스너를 추가하고 키를 누르거나 놓을 때 알림을 받을 수 있습니다.
구현:
private static volatile boolean wPressed = false;
이 변수는 "w" 키를 눌렀는지 여부를 나타냅니다.
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { @Override public boolean dispatchKeyEvent(KeyEvent ke) { synchronized (IsKeyPressed.class) { switch (ke.getID()) { case KeyEvent.KEY_PRESSED: if (ke.getKeyCode() == KeyEvent.VK_W) { wPressed = true; } break; case KeyEvent.KEY_RELEASED: if (ke.getKeyCode() == KeyEvent.VK_W) { wPressed = false; } break; } return false; } } });
이 익명 클래스는 dispatchKeyEvent 메서드를 재정의합니다. 키 이벤트를 처리합니다.
public static boolean isWPressed() { synchronized (IsKeyPressed.class) { return wPressed; } }
이 방법은 클래스 개체를 동기화하여 스레드 안전을 보장하고 wPressed의 값을 반환합니다. 변수.
if (IsKeyPressed.isWPressed()) { // Execute actions when the "w" key is pressed. }
이 접근 방식을 사용하면 주요 이벤트를 지속적으로 모니터링하고 다음을 기반으로 특정 작업을 수행할 수 있습니다. 키를 누릅니다.
위 내용은 Java에서 특정 키 누르기를 지속적으로 모니터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!