> Java > java지도 시간 > Java에서 키 입력을 지속적으로 모니터링하는 방법은 무엇입니까?

Java에서 키 입력을 지속적으로 모니터링하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-11 11:41:17
원래의
829명이 탐색했습니다.

How to Continuously Monitor Keystrokes in Java?

Java에서 키 입력을 모니터링하는 방법

Java에서 키 입력을 감지하려면 특정 키가 명시적으로 확인되는지 확인하는 대신 KeyEvents를 "수신"해야 합니다. 눌렀습니다. 지속적인 키 입력 모니터링을 달성하는 방법은 다음과 같습니다.

의사 코드에서 원하는 기능은 다음과 같이 해석됩니다.

if (isPressing("w")) {
   // perform an action
}
로그인 후 복사

키 입력 모니터링 구현:

To 키 입력을 모니터링하려면 KeyEventDispatcher를 등록해야 합니다. 구현은 다음과 같습니다.

import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;

public class IsKeyPressed {
    private static volatile boolean wPressed = false;
    public static boolean isWPressed() {
        synchronized (IsKeyPressed.class) {
            return wPressed;
        }
    }

    public static void main(String[] args) {
        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;
                }
            }
        });
    }
}
로그인 후 복사

사용법:

KeyEventDispatcher가 등록되면 다음을 사용하여 키 상태를 확인할 수 있습니다.

if (IsKeyPressed.isWPressed()) {
    // take desired action
}
로그인 후 복사

여러 키:

여러 키를 모니터링하려면 IsKeyPressed 클래스를 확장하여 키 맵과 해당 상태를 포함할 수 있습니다.

위 내용은 Java에서 키 입력을 지속적으로 모니터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿