Rumah >Java >javaTutorial >Bagaimana untuk Memantau Ketukan Kekunci Secara Berterusan di Java?

Bagaimana untuk Memantau Ketukan Kekunci Secara Berterusan di Java?

Susan Sarandon
Susan Sarandonasal
2024-12-11 11:41:17890semak imbas

How to Continuously Monitor Keystrokes in Java?

Cara Memantau Ketukan Kekunci dalam Java

Di Java, pengesanan ketukan kekunci melibatkan "mendengar" KeyEvents dan bukannya menyemak secara eksplisit sama ada kunci tertentu ditekan. Begini cara anda boleh mencapai pemantauan ketukan kekunci berterusan:

Dalam pseudokod, kefungsian yang anda inginkan diterjemahkan kepada:

if (isPressing("w")) {
   // perform an action
}

Melaksanakan Pemantauan Ketukan Kekunci:

Kepada memantau ketukan kekunci, anda perlu mendaftarkan KeyEventDispatcher. Berikut ialah pelaksanaan:

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;
                }
            }
        });
    }
}

Penggunaan:

Setelah KeyEventDispatcher didaftarkan, anda boleh menyemak keadaan kunci menggunakan:

if (IsKeyPressed.isWPressed()) {
    // take desired action
}

Berbilang Kekunci:

Untuk memantau berbilang kekunci, anda boleh melanjutkan kelas IsKeyPressed untuk memasukkan peta kunci dan keadaan masing-masing.

Atas ialah kandungan terperinci Bagaimana untuk Memantau Ketukan Kekunci Secara Berterusan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn