ActionListener
Zunächst erstellen wir zuerst einmal eine Klasse die wir innerhalb unserer Fenster Klasse erstellen und implementieren einen Actionlistener für sie. Die Klasse nennen wir DerHandler. Wir importieren zusätzlich den ActionEvent, den ActionListener und JOptionPane. In dieser Klasse, müssen wir eine der Actionlistenerklassen überschreiben. Dazu erstellen wir eine Methode die nichts zurückgibt und actionperformed heißt. Dieser Übergeben wir einen ActionEvent als Parameter.
Vererbung des ActionListeners in Java GUI
private class DerHandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent event) {
String string = "";
if(event.getSource()==name)
string=String.format("Name: %s", event.getActionCommand());
else if(event.getSource()==dieAntwort)
string=String.format("dieAntwort: %s", event.getActionCommand());
else if(event.getSource()==passwortFeld1)
string=String.format("passwortFeld1: %s", event.getActionCommand());
else if(event.getSource()==passwortFeld2)
string=String.format("passwortFeld2: %s", event.getActionCommand());
JOptionPane.showMessageDialog(null, string);
}
}
Dabei brauchen wir eine reihe von If und Else-If Abfragen um abzufragen welches der Felder einen Event erfahren hat (anklicken zum Beispiel). Das tun wir in dem wir einzeln die Felder abfragen und schauen welcher ActionEvent unserer Methode actionPerformed übergeben wurde. Dem Event entsprechend wird “string” befüllt.
In der Letzten Zeile geben wir mit JOptionPane.showMessageDialog(null, string); geben wir in einem Kleinen fenster aus, was wir eingetragen haben.
Wir dürfen nun nicht vergessen in unserer Fenster Klasse im Konstruktor ein Objekt vom Typen DerHandler zu erzeugen und den einzelnen JTextFields und JPasswordFields einen actionListener anzuhängen.
DerHandler handler = new DerHandler();
name.addActionListener(handler);
dieAntwort.addActionListener(handler);
passwortFeld1.addActionListener(handler);
passwortFeld2.addActionListener(handler);
Im nächsten Java GUI Tutotrial werden wir uns dann darum kümmern den Spaß auch anzeigen zu lassen und können dann damit interagieren.