Maison > Java > javaDidacticiel > Comment puis-je détecter les pressions continues sur des touches en Java ?

Comment puis-je détecter les pressions continues sur des touches en Java ?

Patricia Arquette
Libérer: 2024-12-13 20:49:25
original
799 Les gens l'ont consulté

How Can I Detect Continuous Key Presses in Java?

Détection d'appui continu sur une touche en Java

Vous cherchez à établir un mécanisme en Java pour vérifier si un utilisateur appuie continuellement sur une touche spécifique. Cette fonctionnalité peut être obtenue en utilisant l'écoute des événements clés plutôt que de vérifier directement les pressions sur les touches.

Approche basée sur les événements

En Java, vous « écoutez » les événements clés à la place. de vérifier activement les pressions sur les touches. La solution appropriée consiste à enregistrer un KeyEventDispatcher et à maintenir l'état de la clé souhaitée dans l'implémentation de l'écouteur.

Implémentation

import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;

public class KeyPressListener {
    private static volatile boolean isKeyPressed = false;

    public static void main(String[] args) {
        KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {

            @Override
            public boolean dispatchKeyEvent(KeyEvent ke) {
                switch (ke.getID()) {
                    case KeyEvent.KEY_PRESSED:
                        isKeyPressed = true;
                        break;

                    case KeyEvent.KEY_RELEASED:
                        isKeyPressed = false;
                        break;
                }
                return false;
            }
        });
    }

    public static boolean isKeyPressed() {
        return isKeyPressed;
    }
}
Copier après la connexion

Utilisation

Une fois le KeyEventDispatcher enregistré, vous pouvez utiliser la méthode isKeyPressed() pour déterminer si un la touche est actuellement enfoncée.

if (KeyPressListener.isKeyPressed()) {
    // Perform desired actions upon key press
}
Copier après la connexion

Cette approche vous permet de surveiller n'importe quelle touche du clavier et de répondre en conséquence. Vous pouvez modifier l'implémentation pour suivre des clés spécifiques ou créer une carte pour gérer plusieurs états clés simultanément.

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