Comment associer la touche Enter à un bouton [Résolu]

Signaler
Messages postés
34
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
27 février 2008
-
 cenyo -
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 idée ?
merci d'avance

10 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
Il suffit de farfouiller dans la javadoc :

 
void
setDefaultCapable(boolean defaultCapable)


          Sets the
defaultCapable
property,
which determines whether this button can be
made the default button for its root pane.
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
13
au pire
 :
sur ton composant (pas obligatoirement un boutton , par exemple genre une aire de texte ) :

toncomposant.addKeyListener(new KeyListener() {

public void keyTyped(KeyEvent e) {

}

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == KeyEvent.VK_ENTER)

sendCmd();

}

public void keyReleased(KeyEvent e) {

}

});

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
Messages postés
34
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
27 février 2008

merci encore pour ton aide
j'essai le truc en meme temps
à plus
Messages postés
34
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
27 février 2008

j'ai pas encore fini de tester, mais j'ai l'impression que dans la  methode proposée, la touche Enter est fixée à un seul bouton, or moi je voudrai que cela se fasse de façon 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 associée à 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

 
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
ah ce moment là, c'est automatique : si aucun bouton n'est le bouton par défaut, il suffit qu'il ai le focus pour qu'un appui sur la touche entré déclenche son Action !
Messages postés
34
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
27 février 2008

je ne sais pas ce que tu entends par automatique, sinon j'ai utilisé ta methode comme ceci:

monBouton.setDefaultCapable(true);  //celle-ci a été appliquée sur mes 3 boutons
 this.getRootPane().setDefaultButton(null);  

mais rien ne se passe quand je place le focus sur un bouton et que j'appuie sur la touche Enter. mais si je remplace null, par un bouton ce bouton reste associé à la touche Enter meme quand il ne possede pas le focus.
Messages postés
34
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
27 février 2008

ouf!!! ça marche. j'ai un peu modifié le code sheorogath, et tout semble bien marché.
merci beaucoup pour votre aide
à plus
Messages postés
68
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
30 juillet 2012

bonjour, j'ai le meme probleme que ta eu avec la touche entrer meme si
le focus n'est pas sur le bouton en question il n'y'a que lui qui s'active lorsqu'on
appuis sur la touche entrer. alors si tu peut m'aider en me disant comment ta regler ton probleme je t'en remercie d'avance
Messages postés
1
Date d'inscription
samedi 1 mai 2010
Statut
Membre
Dernière intervention
25 juillet 2012

Merci
Bonjour juste un petit apport: le code de la touche Entrer est 10. donc même si tu écrit

if (e.getKeyCode() == 10)

sendCmd();

}
ça marche parfaitement