Jbouton et clavier

Signaler
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
-
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

Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
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
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
salut mais je n'ai pas compris celle ligne bouton.doClick();

et en plus tu n'as pas ajouté la méthode doc(); pourquoi
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
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
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
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
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
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