[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 !
Configuration: Windows XP
Firefox 2.0.0.10

1 réponse

  1. 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
    1. 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