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
Susan Sarandonoriginal
2024-12-11 11:41:17833parcourir

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
}

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

Utilisation :

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

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

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!

Déclaration:
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