Ajouter ActionListener à JButton en Java

Rupam Yadav 15 février 2024
  1. Ajouter ActionListener à un JButton à l’aide d’une classe anonyme
  2. Ajouter ActionListener à JButton en utilisant la classe anonyme et Lambda
  3. Ajouter ActionListener à JButton en utilisant l’héritage
Ajouter ActionListener à JButton en Java

Aujourd’hui, nous allons discuter de l’interface ActionListener du java.awt.event et comment l’ajouter à un JButton, un composant de la classe JFrame dans le package Java Swing.

Ajouter ActionListener à un JButton à l’aide d’une classe anonyme

Dans le premier exemple, nous créons une classe JavaExample avec une méthode main(), et dans cette méthode, nous créons un objet JFrame. Dans la fenêtre JFrame, nous créons trois composants : un JLabel pour afficher un message, un JTextField pour prendre une entrée et un JButton auquel nous ajouterons le ActionListener.

Pour ajouter l’écouteur, nous appelons la fonction addActionListener() de la classe JButton, et dans cette méthode, nous créons une classe anonyme et surchargeons la fonction actionPerformed() qui fait partie de l’interface ActionListener. La fonction actionPerformed() est une méthode qui est appelée lorsqu’une action est effectuée.

Dans la méthode actionPerformed(), nous vérifions d’abord s’il y a quelque chose dans le JTextField, et si le champ de texte est vide, puis nous affichons un message en utilisant JLabel. Sinon, nous affichons le message que nous écrivons dans le champ de texte.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class JavaExample {
  public static void main(String[] args) {
    JFrame jFrame = new JFrame("Java Example");

    JLabel jLabel = new JLabel();
    jLabel.setBounds(50, 150, 350, 40);

    final JTextField jTextField = new JTextField();
    jTextField.setBounds(50, 50, 150, 20);

    JButton jButton = new JButton("Submit");
    jButton.setBounds(50, 100, 100, 30);

    jButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        if (!jTextField.getText().equals(""))
          jLabel.setText(jTextField.getText());
        else
          jLabel.setText("Please write something in the edit box");
      }
    });
    jFrame.add(jLabel);
    jFrame.add(jButton);
    jFrame.add(jTextField);
    jFrame.setSize(400, 400);
    jFrame.setLayout(null);
    jFrame.setVisible(true);
  }
}

Production :

ajouter un écouteur d’action à jbutton1

Ajouter ActionListener à JButton en utilisant la classe anonyme et Lambda

Dans Java 8, des expressions Lambda ont été ajoutées que nous utiliserions dans cet exemple. Tout est identique à l’exemple précédent, mais dans le programme, nous créons une méthode buttonPressed(), et dans cette fonction, nous imprimons le message écrit dans le champ texte vers un JLabel.

Pour ajouter le ActionListener au JButton, nous utilisons la fonction addActionListener(), et dans cette méthode, nous utilisons l’approche lambda. On utilise le paramètre e qui est un objet ActionEvent, puis on appelle la méthode buttonPressed().

import javax.swing.*;

public class JavaExample {
  static JTextField jTextField;
  static JLabel jLabel;

  public static void main(String[] args) {
    JFrame jFrame = new JFrame("Java Example");

    jLabel = new JLabel();
    jLabel.setBounds(50, 150, 350, 40);

    jTextField = new JTextField();
    jTextField.setBounds(50, 50, 150, 20);

    JButton jButton = new JButton("Submit");
    jButton.setBounds(50, 100, 100, 30);

    jButton.addActionListener(e -> buttonPressed());

    jFrame.add(jLabel);
    jFrame.add(jButton);
    jFrame.add(jTextField);

    jFrame.setSize(400, 400);
    jFrame.setLayout(null);
    jFrame.setVisible(true);
  }

  static void buttonPressed() {
    if (!jTextField.getText().equals("")) {
      jLabel.setText(jTextField.getText());
    } else {
      jLabel.setText("Please write something in the edit box");
    }
  }
}

Production :

ajouter un écouteur d’action à jbutton2

Ajouter ActionListener à JButton en utilisant l’héritage

Dans ce programme, nous ajoutons le ActionListener en utilisant le concept d’héritage.

Nous créons une classe JavaExample puis étendons la classe JFrame et implémentons l’interface ActionListener. Nous devons remplacer la méthode actionPerformed() qui fait partie de l’interface ActionListener.

Nous déclarons les variables du composant JFrame en dehors de la méthode main() car nous devons l’utiliser en dehors de la fonction. Nous créons un constructeur de la classe JavaExample et y définissons tous les composants.

Pour ajouter le ActionListener au composant JButton, nous appelons la méthode addActionListener() et passons this, qui pointe vers le contexte de la classe actuelle car la classe actuelle JavaExample implémente ActionListener il est un contexte valide à passer dans la fonction.

Dans la fonction actionPerformed(), nous écrivons les opérations que nous voulons effectuer lorsque le bouton est enfoncé. Dans la méthode main(), nous créons une instance de JFrame et définissons sa disposition et sa visibilité.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class JavaExample extends JFrame implements ActionListener {
  static JTextField jTextField;
  static JLabel jLabel;
  static JButton jButton;

  public static void main(String[] args) {
    JFrame jFrame = new JavaExample();
    jFrame.setLayout(null);
    jFrame.setVisible(true);
  }

  public JavaExample() {
    jLabel = new JLabel();
    jLabel.setBounds(50, 150, 350, 40);

    jTextField = new JTextField();
    jTextField.setBounds(50, 50, 150, 20);

    jButton = new JButton("Submit");
    jButton.setBounds(50, 100, 100, 30);

    jButton.addActionListener(this);

    add(jLabel);
    add(jButton);
    add(jTextField);

    setSize(400, 400);
  }

  @Override
  public void actionPerformed(ActionEvent e) {
    if (!jTextField.getText().equals("")) {
      jLabel.setText(jTextField.getText());
    } else {
      jLabel.setText("Please write something in the edit box");
    }
  }
}

Production :

ajouter un écouteur d’action à jbutton3

Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java Swing

Article connexe - Java JLabel