Maison > Java > javaDidacticiel > Comment surveiller en permanence les frappes au clavier en Java ?

Comment surveiller en permanence les frappes au clavier en Java ?

Susan Sarandon
Libérer: 2024-12-11 11:41:17
original
855 Les gens l'ont consulté

How to Continuously Monitor Keystrokes in Java?

Comment surveiller les frappes au clavier en Java

En Java, la détection des frappes implique « d'écouter » les KeyEvents plutôt que de vérifier explicitement si une touche spécifique est pressé. Voici comment réaliser une surveillance continue des frappes :

En pseudocode, la fonctionnalité souhaitée se traduit par :

if (isPressing("w")) {
   // perform an action
}
Copier après la connexion

Mise en œuvre de la surveillance des frappes :

Pour surveiller les frappes au clavier, vous devez enregistrer un KeyEventDispatcher. Voici une implémentation :

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;
                }
            }
        });
    }
}
Copier après la connexion

Utilisation :

Une fois le KeyEventDispatcher enregistré, vous pouvez vérifier l'état d'une clé en utilisant :

if (IsKeyPressed.isWPressed()) {
    // take desired action
}
Copier après la connexion

Clés multiples :

Pour surveiller plusieurs clés, vous pouvez étendez la classe IsKeyPressed pour inclure une carte des touches et leurs états respectifs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal