[java] désactiver l'autorepeat du KeyPressed

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 !
A voir également:

1 réponse

synn
 
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
0
Utilisateur anonyme
 
Merci beaucoup
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.
0