ActionListener zu JButton in Java hinzufügen
-
Hinzufügen eine
ActionListener
zu einemJButton
unter Verwendung einer anonymen Klasse -
Hinzufügen von
ActionListener
zuJButton
mit anonymer Klasse und Lambda -
Hinzufügen von
ActionListener
zuJButton
mittels Vererbung
Heute besprechen wir die ActionListener
-Schnittstelle des java.awt.event
und wie man sie zu einem JButton
hinzufügt, einer Komponente der JFrame
-Klasse im Java Swing Paket.
Hinzufügen eine ActionListener
zu einem JButton
unter Verwendung einer anonymen Klasse
Im ersten Beispiel erstellen wir eine Klasse JavaExample
mit einer Methode main()
und in dieser Methode erstellen wir ein JFrame
-Objekt. Im JFrame
-Fenster erstellen wir drei Komponenten: ein JLabel
zum Anzeigen einer Nachricht, ein JTextField
zum Aufnehmen einer Eingabe und einen JButton
, dem wir den ActionListener
hinzufügen.
Um den Listener hinzuzufügen, rufen wir die Funktion addActionListener()
der Klasse JButton
auf, und in dieser Methode erstellen wir eine anonyme Klasse und überschreiben die Funktion actionPerformed()
, die Teil der Schnittstelle ActionListener
ist. actionPerformed()
ist eine Methode, die aufgerufen wird, wenn eine Aktion ausgeführt wird.
In der Methode actionPerformed()
prüfen wir zuerst, ob etwas im JTextField
steht, und wenn das Textfeld leer ist, zeigen wir eine Nachricht mit JLabel
an. Andernfalls zeigen wir die Nachricht an, die wir in das Textfeld schreiben.
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);
}
}
Ausgabe:
Hinzufügen von ActionListener
zu JButton
mit anonymer Klasse und Lambda
In Java 8 wurden Lambda-Ausdrücke hinzugefügt, die wir in diesem Beispiel verwenden würden. Alles ist dasselbe wie im vorherigen Beispiel, aber im Programm erstellen wir eine Methode buttonPressed()
, und in dieser Funktion drucken wir die in das Textfeld geschriebene Nachricht auf ein JLabel
.
Um den ActionListener
zum JButton
hinzuzufügen, verwenden wir die Funktion addActionListener()
, und in dieser Methode verwenden wir den Lambda-Ansatz. Wir verwenden den Parameter e
, der ein ActionEvent
-Objekt ist, und rufen dann die buttonPressed()
-Methode auf.
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");
}
}
}
Ausgabe:
Hinzufügen von ActionListener
zu JButton
mittels Vererbung
In diesem Programm fügen wir den ActionListener
hinzu, indem wir das Konzept der Vererbung verwenden.
Wir erstellen eine Klasse JavaExample
und erweitern dann die Klasse JFrame
und implementieren die Schnittstelle ActionListener
. Wir müssen die Methode actionPerformed()
überschreiben, die Teil der Schnittstelle ActionListener
ist.
Wir deklarieren die Komponentenvariablen JFrame
ausserhalb der Methode main()
, weil wir sie ausserhalb der Funktion verwenden müssen. Wir erstellen einen Konstruktor der Klasse JavaExample
und setzen alle Komponenten darin.
Um den ActionListener
zur JButton
-Komponente hinzuzufügen, rufen wir die addActionListener()
-Methode auf und übergeben this
, das auf den Kontext der aktuellen Klasse zeigt, da die aktuelle Klasse JavaExample
den ActionListener
implementiert ein gültiger Kontext, um die Funktion zu übergeben.
In die Funktion actionPerformed()
schreiben wir die Operationen, die wir ausführen wollen, wenn die Taste gedrückt wird. In der Methode main()
erstellen wir eine Instanz von JFrame
und legen deren Layout und Sichtbarkeit fest.
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");
}
}
}
Ausgabe:
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInVerwandter Artikel - Java Swing
- Java Paint-Komponente
- Verwendung von SwingUtilities.invokeLater() in Java
- Erstellen von Leinwänden mit Java Swing
- Java-Klartextfeld
- Ändern den JLabel-Text in Java Swing
- Java Swing Datum