# Java > Interfaces Graphiques en Java > AWT/Swing >  Intercepter plusieurs touches du clavier en mme temps

## fabseven

Bonjour, aprs une recherche assez longue sur le forum je me suis dcider  faire ce poste car je n'ai pas pu trouver la rponse que je cherche, voici mon problme :

Il est assez facile, en java avec KeyListener d'intercepter une touche sur stdin (le clavier) de la facon suivante : 
(dans une classe qui extends KeyListener)



```

```

Ce code marche trs bien quand on appuie sur une touche  la fois. Mais comment faire pour grer l'utilisation de plusieurs touches en mme temps ? Je voudrais faire un petit jeu  deux joueurs avec des touches distinctes mais avec ce code une action d'un joueur entrave celle de l'autre ( si on appuie sur deux touches en mme temps c'est la dernires touche qui est prise en compte)



Question Bonus :
Est-ce qu'on utilise des classes internes pour la gestions d'vnements ? J'ai vu les classes internes en cours il y a peu de temps et j'ai essayer d'en utiliser une pour la gestion d'event aujourd'hui mme mais je n'y arrivais pas ( une class Animal extends JComponent implements KeyListener  , extends JComponent pour avoir le focus avec requestFocus(), mais malgrs tout le clavier ne ragissait pas )



Voila, merci d'avance pour vos rponses  ::):

----------


## le y@m's

En utilisant les mthodes *keyPressed*() et *keyReleased*() de ton listener, tu peux savoir si une touche a t enfonc et non relach


```

```

Remarque : si tu as beaucoup de touches  grer, il serait peut-tre plus intressant d'utiliser une List plutt que des boolens.

Remarque 2 : il faut bien noter l'utilisation de la mthode getKeyCode() en lieu et place de getKeyChar(), cf



> The getKeyChar method always returns a valid Unicode character or   CHAR_UNDEFINED.  Character input is reported by KEY_TYPED events:   KEY_PRESSED and KEY_RELEASED events are not necessarily associated   with character input.  Therefore, the result of the getKeyChar method   is guaranteed to be meaningful only for KEY_TYPED events.

----------


## fabseven

Ok, je pense avoir compris comment faire, par contre je crois avoir repr une erreur dans ton code, tu as deux fois la mme mthode keyPressed ; Je suppose que la seconde (vu le contenu) doit etre keyReleased.

Bon je vais tudier ca et le mettre en oeuvre pour mon petit jeu, merci beaucoup pour la rponse trs trs rapide  ::):

----------


## le y@m's

Erreur de copier/coller, dsol. C'est corrig  :;): .

----------

