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!