Jbouton et clavier

ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 10 juin 2007 à 23:58
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 11 juin 2007 à 17:06
Salut     

je cherche si je tape sur le bouton entrée de clavier déclanche une actionlistener

package aa;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.awt.print.*;
import java.awt.event.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
 
 
 
 
publicclass allo extends JFrame implements ActionListener {
 
 
 
public JPanel pan;
private JButton OK = new JButton("entrer");
private JButton sortir = new JButton("sortir");
 
 
private JTextPane b = new JTextPane();
private JScrollPane n = new JScrollPane();
 
 
public allo(){
 
this.setResizable(false);
this.setSize(620,620);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
 
pan = new JPanel();
pan.setLayout(null);
 
 
 
 
     n.setViewportView(b);
     pan.add(n);
     n.setBounds(80 ,160 ,460,270);
 
 
     OK.addActionListener(this);
     OK.setBounds(50 ,520 ,100,30);
     pan.add(OK);
 
     sortir.setBounds(150 ,520 ,100,30);
     sortir.addActionListener(this);
     pan.add(sortir);
    
    sortir.addKeyListener(new KeyListener(){
 
 
       publicvoid keyTyped (KeyEvent e){
 
 
}
 
       publicvoid keyPressed ( KeyEvent e){
}
publicvoid keyReleased(KeyEvent e){
if(e.getKeyChar()==KeyEvent.VK_E)
     doc();
 
}
 
 
     });
 
 
 
 
  getContentPane().add(pan);
 
}
 
 
 
 
        publicstaticvoid main(String[] args){
 
 
 
          allo gui = new allo();
             gui.setVisible(true);
         }
 
 
 
 
publicvoid actionPerformed(ActionEvent e){
 
 
 
 
if  (e.getSource().equals(sortir)){
 
 
 
   this.setVisible(false);
   item2 sp = new item2();
   sp.setVisible(true);
 
}
 
    }
 
 
    privatevoid doc()
    {
 
      this.setVisible(false);
        fenetre sp = new fenetre();
        sp.setVisible(true);
 
    }
 
 
 
 
 
 
 
}

5 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
11 juin 2007 à 00:17
Salut,

te suffit d'invoker la méthode doClick du bouton :

if(e.getKeyChar()==KeyEvent.VK_ENTER)
     bouton.doClick();

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
11 juin 2007 à 13:56
salut mais je n'ai pas compris celle ligne bouton.doClick();

et en plus tu n'as pas ajouté la méthode doc(); pourquoi
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
11 juin 2007 à 14:08
Salut,

doClick() est une méthode héritée de AbstractButton qui permet de simuler un clic sur un bouton.

Pour ce qui est de :
if(e.getKeyChar()==KeyEvent.VK_ENTER)
     bouton.doClick();

c'est juste un exemple..... et je n'ai pas ajouté la méthode doc() pour la simple raison que tu l'a déclanche apres pression de la touche 'E' or tu demandes "si je tape sur le bouton entrée de clavier déclanche..."

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
11 juin 2007 à 16:42
salut
j'ai rajouter à
public void keyReleased(KeyEvent e){
 if(e.getKeyChar()==KeyEvent.VK_ENTER)
    sortir.doClick();
doc();
}
mais rien se passe ,ça fonctionne pas
0

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

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
11 juin 2007 à 17:06
Salut,

....... tin mais faut vraiment vous prendres par la main ma parole......

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

public class Allo extends JFrame implements ActionListener {

    public JPanel        pan;
    private JButton        oK        = new JButton("entrer");
    private JButton        sortir    = new JButton("sortir");

    private JTextPane    b        = new JTextPane();
    private JScrollPane    n        = new JScrollPane();

    public Allo() {

        this.setResizable(false);
        this.setSize(620, 620);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        pan = new JPanel();
        pan.setLayout(null);

        n.setViewportView(b);
        pan.add(n);
        n.setBounds(80, 160, 460, 270);

        oK.addActionListener(this);
        oK.setBounds(50, 520, 100, 30);
        pan.add(oK);

        sortir.setBounds(150, 520, 100, 30);
        sortir.addActionListener(this);
        pan.add(sortir);

        sortir.addKeyListener(new KeyListener() {
            public void keyTyped(KeyEvent e) {

            }
            public void keyPressed(KeyEvent e) {
            }
            public void keyReleased(KeyEvent e) {
                if (e.getKeyChar() == KeyEvent.VK_ENTER)
                    sortir.doClick();//ici tu declanches le clic sur le bouton mais il faut impérativement qu'il ai le focus... je te laisse trouver une solution pour palier la problématique vu qu'il s'agit d'un autre problème et que tu vas bien lutter avec ton textpane qui ne perdra pas son focus aussi simplement.....
            }
        });
        getContentPane().add(pan);

    }

    public static void main(String[] args) {

        Allo gui = new Allo();
        gui.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {

        if (e.getSource().equals(sortir)) {
            //pour appeler la méthode
            doc();
            this.setVisible(false);
             //j'ai pas item chez moi
            // item2 sp = new item2();
            // sp.setVisible(true);

        }

    }
    private void doc() {
        JOptionPane.showMessageDialog(this, "Méthode doc");//remplace par ton truc fenetre

    }

}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Rejoignez-nous