Informatik-Lexikon

Button abfragen

In diesem Beitrag soll es darum gehen, wie man

a) feststellen kann, welcher von zwei Buttons geklickt wurde und
b) dann eine entsprechende Aktion ausführen kann.

Kurz gesagt, es geht um Ereignisbehandlung, angewandt auf Buttons. Schauen wir uns zunächst einen kurzen Beispiel-Quelltext an:

Beispielquelltext

Zeile 1-3: Import wichtiger Java-Bibliotheken.

Zeile 5: Kopf der Klasse ButtonTest, welche ein Applet ist.

Zeile 6: Das Applet soll einen ActionListener besitzen, damit auf Aktionen des Benutzers reagiert werden kann.

Zeile 8: Deklaration von zwei Buttons b1 und b2.

Zeile 9: Deklaration einer Textausgabe label.

Zeile 11: Kopf der init()-Methode des Applets.

Zeile 13/14: Initialisierung der beiden Buttons.

Zeile 16: Layout soll pixelgenaues Positionieren von Komponenten ermöglichen.

Zeile 18/19: Pixelgenaues Positionieren der beiden Buttons

Zeile 20/21: Hinzufügen der beiden Buttons zum Applet.

Zeile 23/24: Jeder Button bekommt einen ActionListener, kann also fortan auf Aktionen reagieren.

Zeile 27: Kopf der Methode actionPerformed, welche sich um die Benutzer-Aktionen kümmert.

Zeile 29/31: Falls der erste / zweite Button verantworlich für eine Aktion war

Zeile 30/32: erhält label den richtigen Text.

Zeile 33: Neuzeichnen des Applets erforderlich, damit der Text richtig ausgegeben wird

Zeile 36: Kopf der paint()-Methode

Zeile 38: Deklaration und Initialisierung eines Font-Objektes f

Zeile 39: Der Ausgabe-Font des Applets wird auf f gesetzt.

Zeile 40: Ausgabe des Strings label.

1 Beispiel-Quelltext

2 Ein Applet mit zwei Buttons reagiert auf Mausklicks mit einer Meldung

Erläuterung

Eigentlich steht die Erläuterung schon neben dem Quelltext. Zunächst werden ganz normal die beiden Buttons initialisiert und dann dem Applet mittels add() übergeben. Dann erfolgt für jeden Button der Aufruf der Button-Methode addActionListener(). Diese Methode hat die Klasse Button von der übergeordneten Klasse geerbt. Auch andere graphische Komponenten besitzen diese Methode. Mit dem Schlüsselwort this verknüpfen wir den ActionListener des jeweiligen Buttons mit dem Applet. Wenn also der Button geklickt wird, so wird diese Information an das Applet weitergeleitet. Daraufhin reagiert dieses mit dem Aufruf der Methode actionPerformed(ActionEvent event). Dies ist sozusagen die Standard-Antwort auf jegliche Aktionen, die dem Applet mitgeteilt werden. Wenn wir diese Methode leer lassen, also keinen Quelltext hineinschreiben, passiert nichts weiter. Wollen wir aber, dass etwas geschieht, wenn der eine oder andere Button geklickt wurde, so müssen wir die Methode actionPerformed() mit sinnvollen Befehlen füllen.

Zunächst einmal muss festgestellt werden, welcher der beiden Buttons geklickt wurde. Dies geschieht mit Hilfe der Methode getSource(), über die jedes Objekt der Klasse ActionEvent verfügt. Wenn feststeht, dass b1 geklickt wurde, so wird das Attribut label auf "Anfang" gesetzt. Wurde dagegen b2 geklickt, wird label auf "Ende" gesetzt. Anschließend wird die Methode repaint() des Applets aufgerufen, welches dazu führt, dass die paint()-Methode ausgeführt wird.





IMPRESSUM