[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 !
A voir également:
- [java] désactiver l'autorepeat du KeyPressed
- Desactiver rond bleu whatsapp - Guide
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
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
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
c'est la méthode que j'ai finalement employée.
j'ai appris aussi que ce comportement dépend de l'OS: sous windows il y a répétition, mais pas forcément sous d'autres OS... mais bon avec notre booléen au moins on est sûrs que ça marche partout.