KeyListener associé à un bouton - Java - Programmation
Marsh Posté le 18-04-2006 à 17:04:19
Je m'autorépond car je viens de trouver, au cas ou qqu'un voudrait savoir.
En fait, il y avait bcoup plus simple, pas besoin d'utiliser KeyListener, en faisant:
chercher.setMnemonic(KeyEvent.VK_ENTER);
getRootPane().setDefaultButton(chercher);
getRootPane().requestFocus(); //je ne sais pas à quoi sert cette dernière ligne, car si je l'enlève ça marche toujours
Marsh Posté le 18-04-2006 à 17:39:49
En fait çà marche pas si bien que cela.
J'ai voulu rajouter un nouveau raccourci (Echap pour quitter):
quitter.setMnemonic(KeyEvent.VK_ESCAPE);
getRootPane().setDefaultButton(quitter);
mais maintenant, lorsque j'appuie sur entré, ça ferme ma fenêtre, et lorsque j'appuie sur échap, ça fait rien.
Qqu'un saurait d'où vient le problème (peut-être considère t'il le DefaultButton comme étant obligatoirement ENTER)
Marsh Posté le 18-04-2006 à 16:40:46
Bonjour,
Je voudrais associer le fait d'appuyer sur la touche entrée à une action d'un bouton (en l'occurence le bouton "chercher" )
Je me demande si je ne dois pas ajouter un "addKeyListener()" quelquepart, mais je ne sais pas où (dans la class SearchFrame_chercher_actionAdapter, cela ne marche pas).
mon code:
// Action du bouton chercher
public void chercher_actionPerformed(ActionEvent e) throws TextNotAvailableException, NoSuchLocationException{
[...]
}
public void chercher_actionPerformed(KeyEvent e) throws TextNotAvailableException, NoSuchLocationException{
[...]
}
mon adapteur:
//Adapteur pour les boutons
class SearchFrame_chercher_actionAdapter implements ActionListener,KeyListener {
private SearchFrame adaptee;
SearchFrame_chercher_actionAdapter(SearchFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e){
try{
adaptee.chercher_actionPerformed(e);
} catch(NoSuchLocationException nsl){
System.out.println(nsl);
}catch(TextNotAvailableException tna){
System.out.println(tna);
}
public void keyTyped(KeyEvent e){
}
public void keyPressed(KeyEvent arg0) {
}
public void keyReleased(KeyEvent arg0) {
if (e.getKeyCode() == KeyEvent.VK_ENTER)
try{
adaptee.chercher_actionPerformed(e);
}catch(NoSuchLocationException nsl){
System.out.println(nsl);
}catch(TextNotAvailableException tna){
System.out.println(tna);
}