Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Memantau Peristiwa Penekanan Kekunci Secara Berterusan di Java?
Dalam program Java yang memerlukan pemantauan berterusan ke atas tekanan kekunci pengguna, adalah penting untuk mewujudkan mekanisme untuk mengesan input papan kekunci. Pendekatan konvensional dalam Java bukanlah untuk memeriksa secara langsung sama ada kekunci ditekan tetapi sebaliknya untuk mendengar acara papan kekunci.
Untuk memantau penekanan kekunci, seseorang boleh memanfaatkan KeyEventDispatchers. Penghantar ini bertanggungjawab untuk mengendalikan acara papan kekunci dan menghantarnya kepada pendengar acara yang sesuai.
Pertimbangkan coretan kod Java berikut, yang menunjukkan cara membuat dan mendaftarkan KeyEventListener untuk menjejak keadaan daripada 'w' kunci:
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; } } }); } }
Setelah KeyEventListener didaftarkan, anda boleh menyemak keadaan kunci 'w' pada bila-bila masa menggunakan kaedah isWPressed():
if (IsKeyPressed.isWPressed()) { // Perform desired actions }
Pendekatan ini membolehkan pemantauan berterusan terhadap penekanan kekunci tanpa memerlukan tinjauan berterusan atau semakan bersyarat. KeyEventDispatcher menguruskan pengesanan dan penghantaran peristiwa penting, menyediakan mekanisme yang teguh dan cekap untuk memantau input pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memantau Peristiwa Penekanan Kekunci Secara Berterusan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!