Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Memantau Peristiwa Penekanan Kekunci Secara Berterusan di Java?

Bagaimanakah Saya Boleh Memantau Peristiwa Penekanan Kekunci Secara Berterusan di Java?

Barbara Streisand
Lepaskan: 2024-12-18 08:05:10
asal
373 orang telah melayarinya

How Can I Continuously Monitor Keypress Events in Java?

Menentukan Peristiwa Penekanan Kekunci dalam 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.

Penghantar Acara Utama

Untuk memantau penekanan kekunci, seseorang boleh memanfaatkan KeyEventDispatchers. Penghantar ini bertanggungjawab untuk mengendalikan acara papan kekunci dan menghantarnya kepada pendengar acara yang sesuai.

Pelaksanaan

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;
                }
            }
        });
    }
}
Salin selepas log masuk

Penggunaan

Setelah KeyEventListener didaftarkan, anda boleh menyemak keadaan kunci 'w' pada bila-bila masa menggunakan kaedah isWPressed():

if (IsKeyPressed.isWPressed()) {
    // Perform desired actions
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan