KeyListener associé à un bouton

KeyListener associé à un bouton - Java - Programmation

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);
 
}

Reply

Marsh Posté le 18-04-2006 à 16:40:46   

Reply

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

Reply

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)


Message édité par toto10 le 18-04-2006 à 17:40:41
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed