[java] désactiver l'autorepeat du KeyPressed
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je suis entrain de construire une interface utilisateur en Java (sous Eclipse) avec interaction par les touches du clavier.
Or lorsqu'on applique un KeyListener sur une JFrame, un "autorepeat" est appliqué à la fonction KeyPressed, c'est-à-dire:
- Si on appuie sur une touche du clavier, KeyPressed est lancé une première fois.
- Si on maintient cette touche enfoncée, KeyPressed continue à être appelé en continu, jusqu'à ce qu'on relache la touche (on obtient alors un KeyReleased).
Je cherche en quelque sorte à désactiver l'autorepeat de KeyPressed:
Je voudrais que si j'appuie et reste appuyé sur la touche 'A', KeyPressed ne soit déclenchée qu'une seule fois.
Avez-vous une idée là-dessus ?
Merci !
je continue à creuser !
Je suis entrain de construire une interface utilisateur en Java (sous Eclipse) avec interaction par les touches du clavier.
Or lorsqu'on applique un KeyListener sur une JFrame, un "autorepeat" est appliqué à la fonction KeyPressed, c'est-à-dire:
- Si on appuie sur une touche du clavier, KeyPressed est lancé une première fois.
- Si on maintient cette touche enfoncée, KeyPressed continue à être appelé en continu, jusqu'à ce qu'on relache la touche (on obtient alors un KeyReleased).
Je cherche en quelque sorte à désactiver l'autorepeat de KeyPressed:
Je voudrais que si j'appuie et reste appuyé sur la touche 'A', KeyPressed ne soit déclenchée qu'une seule fois.
Avez-vous une idée là-dessus ?
Merci !
je continue à creuser !
Configuration: Windows XP Firefox 2.0.0.10
1 réponse
-
Bonjour,
j'ai le même probleme et ma solution est d'utiliser keyReleased(KeyEvent e).
Le principe: quand tu detecte un keypressed, tu pass un booleen a "TRUE".
Quand ce boolen est "TRUE" tu ne fais pas ton action.
Quand tu detecte le key released, tu passe le bolléen à "FALSE".
C'est un peu fastidieux et peut etr pas approrié a ton cas.
Bon courage,
Synn