Comment associer la touche Enter à un bouton

Résolu
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008 - 14 août 2007 à 16:54
 cenyo - 29 juil. 2012 à 15:05
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 août 2007 à 17:10
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.
1
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
14 août 2007 à 23:43
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"
1
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008
14 août 2007 à 17:33
merci encore pour ton aide
j'essai le truc en meme temps
à plus
0
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008
14 août 2007 à 18:07
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

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 août 2007 à 18:31
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 !
0
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008
14 août 2007 à 23:10
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.
0
cerco2 Messages postés 34 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 27 février 2008
15 août 2007 à 13:00
ouf!!! ça marche. j'ai un peu modifié le code sheorogath, et tout semble bien marché.
merci beaucoup pour votre aide
à plus
0
tihout Messages postés 68 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 30 juillet 2012
19 déc. 2008 à 23:34
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
0
cs_mohavic Messages postés 1 Date d'inscription samedi 1 mai 2010 Statut Membre Dernière intervention 25 juillet 2012
25 juil. 2012 à 22:57
Merci
0
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
0
Rejoignez-nous