Ajouter ActionListener à JButton en Java
-
Ajouter
ActionListener
à unJButton
à l’aide d’une classe anonyme -
Ajouter
ActionListener
àJButton
en utilisant la classe anonyme et Lambda -
Ajouter
ActionListener
àJButton
en utilisant l’héritage
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 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 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 :
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArticle connexe - Java Swing
- Champ de texte en clair Java
- Créer un canevas à l'aide de Java Swing
- Centrer un JLabel dans Swing
- Java Swing Date
- Modifier le texte JLabel dans Java Swing