# Java > Interfaces Graphiques en Java > AWT/Swing >  comment associer la touche Enter à un bouton

## cerco1

salut,
je voudrai savoir comment faire pour associer la touche Enter aux boutons de ma fenetre. c'est  dire, j'aimerai que lorsque je suis entrain de remplir un champ de texte par exemple, que le focus se place deja sur un bouton par defaut et j'aurai juste  appuyer sur la touche Enter, au lieu de cliquer necessairement sur le bouton. aussi que je puisse avoir la possiblit de selectionner un autre bouton en utilisant la touche tabulation.
quelqu'un  une ide ?
merci d'avance

----------


## Billy14

Bonjour, 

tu ajoute un keyListener et si l'utilisateur appuie sur la touche entrer, tu fais appel  la mme mthode que ton bouton

----------


## rems033

une autre mthode : 


```

```

et le tour est jou!!!!

----------


## cysboy

pour rappel, c'est une interface que tu dois implementer (Keylistener) donc tu dois redfinir les mthodes de celle-ci. En l'occurence:


```

```

Ensuite soit tu remet ton traitement dans la mthode qui t'intresse ou soit tu simule un click sur le bouton qui dclenche l'vnement souhait 


```
tonBouton.doClick()
```

----------


## Billy14

C'est vrai c'est plus simple et plus rapide, j'y avait pas pens

----------


## cysboy

+1
Rapide, simple, efficace !  ::P:

----------


## cerco1

merci  tous de m'avoir repondu aussi rapidement

je me met, de suite,  tester differentes methode

----------


## atha2

un petit ajout:
Je ne suit pas sure que le doclick()soit plus rapide  l'execution:
sans le doclick
keyEvent->uneAction()
ActionEvent->unAction()
plus rapide que:
avec le doclick
KeyEvent->ActionEvent->uneAction()
ActionEvent->unAction()
aprs tu fait comme tu veut...

----------


## cerco1

j'ai pas encore fini de tester, mais j'ai l'impression que dans les differentes methodes proposes, la touche Enter est fixe  un bouton unique, or moi je voudrai que cela se fasse de faon dynamique par rapport  la position du focus. c'est  dire un appuie  sur la touche Enter, declenche d'abord une verification de la position du focus, et seul l'evenement associ au bouton o se trouve le focus  sera lanc.

ex: si j'ai 2 boutons, supposons que par defaut le focus se trouve sur le bouton1 et donc la touche Enter est associe  cet instant au bouton1. mais lorsque je passe le focus sur le bouton2, alors il faudrat qu' cet instant la touche Enter soit associ au bouton2, donc declenche l'evenement associ au bouton2

voil un peu ce que je veux en fait, je ne sais pas si j'ai t assez clair

----------


## atha2

tu peut recuper le bouton avec la methode isFocusOwner() applicable  un bouton et qui renvois un boolean;Mais si tu as une centaine de boutons c'est dificilement jouable.

----------


## atha2

essaye a :


```

```

----------


## cerco1

atha2, j'ai essay ton code, en applicant ton keyListener sur chacun de mes boutons, mais quand je place le focus sur un bouton quelconque et que j'appuie sur la touche Enter, rien ne se produit. je suppose que je n'ai plus  implementer encore l'interface KeyListener, etant donn qu'en integrant ton code dans le mien, je n'ai eu aucun message d'erreur. bon  moins que je l'ai mal utilis, car je l'ai ajout dans le constructeur de ma JFrame.
excusez-moi si je parait nul, mais je suis vraiment debutant et je veux apprendre.
merci

----------


## atha2

excuse moi je me suis tromp ::?: 
J'ai modifi

----------


## Janitrix

Par dfaut, c'est la barre d'espace qui active le bouton qui a le focus. Tu dois pouvoir changer cela  l'aide d'une proprit, mais je ne la connais pas.

----------


## cerco1

salut
merci pour ta reponse. maintenant en ajoutant ton code modifi j'ai ce message d'erreur:


```

```

----------


## atha2

modifie:

```

```

en 

```

```

----------


## cerco1

avec KeyTyped() a ne passait pas, j'ai alors remplac par KeyPressed() et a marche trs bien. je te remercie beaucoup, atha2, pour ton code et aussi merci  tous ceux qui m'ont repondu.
cependant j'aimerai quand meme savoir, atha2, pourquoi il fallait ajouter le nom de ma classe devant le this, pour que le message d'erreur ne s'affiche plus ?

----------


## atha2

le MaClass.this permet de rcuperer l'instance de la classe courante lorsque l'on est dans une classe anonyme. ::yaisse2::

----------


## cerco1

ok, j'ai compris. encore merci beaucoup pour ton aide.
je reviendrai surement, sur le forum,  si j'ai un autre problme
bien  toi et  plus

----------

