Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Memantau Penekanan Kekunci Khusus secara Berterusan di Java?
Memantau Ketukan Kekunci Pengguna secara Berterusan di Java
Dalam senario ini, matlamatnya adalah untuk sentiasa menyemak sama ada pengguna sedang menekan kekunci tertentu, seperti sebagai kekunci "w".
Tidak seperti bahasa lain, Java tidak mempunyai fungsi asli untuk memeriksa secara terus tekanan kekunci. Sebaliknya, ia menggunakan pendekatan berasaskan pendengar untuk mengendalikan peristiwa penting.
Penyelesaian: KeyEventDispatcher
Untuk memantau peristiwa penting dengan berkesan, Java menyediakan kelas KeyEventDispatcher. Kelas ini membolehkan anda menambah pendengar pada baris gilir acara Java AWT (Abstract Window Toolkit) dan menerima pemberitahuan apabila sebarang kekunci ditekan atau dilepaskan.
Pelaksanaan:
private static volatile boolean wPressed = false;
Pembolehubah ini akan menunjukkan jika kekunci "w" sedang ditekan.
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; } } });
Kelas tanpa nama ini mengatasi kaedah dispatchKeyEvent untuk mengendalikan peristiwa penting.
public static boolean isWPressed() { synchronized (IsKeyPressed.class) { return wPressed; } }
Kaedah ini menyegerakkan pada objek kelas untuk memastikan urutan keselamatan dan mengembalikan nilai wPressed pembolehubah.
if (IsKeyPressed.isWPressed()) { // Execute actions when the "w" key is pressed. }
Dengan menggunakan pendekatan ini, anda boleh terus memantau peristiwa penting dan melakukan tindakan khusus berdasarkan menekan kekunci.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memantau Penekanan Kekunci Khusus secara Berterusan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!