Comment associer la touche Enter à un bouton – Java AWT/Swing

JButton est une sous-classe de la classe AbstractButton et il peut être utilisé pour ajouter des boutons indépendants de la plate-forme dans une application Java Swing. JButon peut générer une interface ActionListener lorsque l’utilisateur clique sur un bouton, il appellera la méthode actionPerformed() de l’interface ActionListener.

JTextField peut générer une interface KeyListener lorsque l’utilisateur clique sur une touche de clavier, il appellera la méthode keyPressed() de l’interface KeyListener.

Dans ce tutoriel nous allons découvrir comment associer la touche Enter à un bouton en Java.


 

Exemple:
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.*; 

class EnterBtn extends JFrame implements ActionListener, KeyListener 
{   
    public static void main(String[] args) 
    {
        // créer un frame 
        JFrame frame = new JFrame("Associer la touche Enter à un bouton"); 
        // créer un objet
        EnterBtn obj = new EnterBtn(); 
        // créer un panneau 
        JPanel panel = new JPanel(); 
        
        JLabel lname = new JLabel("Entrez votre nom ici:");
        JTextField tname = new JTextField(21);
        JButton btn = new JButton("Cliquez ici"); 
        // ajouter le listener au bouton
        btn.addActionListener(obj); 
        // ajouter le listener au textField
        tname.addKeyListener(obj); 
        // ajouter textFields et le bouton au panneau
        panel.add(lname);
        panel.add(tname);
        panel.add(btn); 
        frame.add(panel); 
        frame.setSize(300, 130); 
        frame.show(); 
        frame.setLocationRelativeTo(null);
    } 
	
    public void actionPerformed(ActionEvent e) 
    {
        String s = e.getActionCommand(); 
        if(s.equals("Cliquez ici")){
            JOptionPane.showMessageDialog(null , "Votre formulaire a bien été envoyé");
        } 
    } 

	public void keyPressed(KeyEvent e) {
		if (e.getKeyCode()==KeyEvent.VK_ENTER){
			JOptionPane.showMessageDialog(null , "Votre formulaire a bien été envoyé");
		}
	}

    @Override
    public void keyReleased(KeyEvent arg) {}

    @Override
    public void keyTyped(KeyEvent arg) {}
}

Sortie:

Méthode 2:
Au lieu d’implémenter l’interface KeyListener. Après avoir construit le frame avec tous ses boutons, procédez comme suit:

frame.getRootPane().setDefaultButton(btn);

Pour chaque frame, vous pouvez définir un bouton par défaut qui écoutera automatiquement la touche Entrée. Lorsque vous appuyez sur Entrée dans ce frame, la méthode actionPerformed() de ActionListener sera invoquée.

 
 

Exemple Complet: Méthode 2
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.*; 

class EnterBtn extends JFrame implements ActionListener 
{   
    public static void main(String[] args) 
    {
        // créer un frame 
        JFrame frame = new JFrame("Associer la touche Enter à un bouton"); 
        // créer un objet
        EnterBtn obj = new EnterBtn(); 
        // créer un panneau 
        JPanel panel = new JPanel(); 
        
        JLabel lname = new JLabel("Entrez votre nom ici:");
        JTextField tname = new JTextField(21);
        JButton btn = new JButton("Cliquez ici"); 
        // ajouter le listener au bouton
        btn.addActionListener(obj); 
        // ajouter textFields et le bouton au panneau
        panel.add(lname);
        panel.add(tname);
        panel.add(btn); 
        frame.add(panel); 
        //****** Définir le bouton par défaut ******
        frame.getRootPane().setDefaultButton(btn);
        frame.setSize(300, 130); 
        frame.show(); 
        frame.setLocationRelativeTo(null);
    } 
	
    public void actionPerformed(ActionEvent e) 
    {
        String s = e.getActionCommand(); 
        if(s.equals("Cliquez ici")){
            JOptionPane.showMessageDialog(null , "Votre formulaire a bien été envoyé");
        } 
    } 
}

Sortie:


Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *