[java] désactiver l'autorepeat du KeyPressed
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