19.2 Aktionsabhorcher und Ereignisse |
|
Ein Lauscher | Dass ein Programm auf das Drücken eines Buttons durch eine Aktion reagieren kann, muss erst einmal sichergestellt werden, ob der Button überhaupt gedrückt wurde. Dazu benutzt man einen Lauscher, der die Überwachung unseres Programms übernimmt. |
ActionListener | Der
Lauscher wird dadurch auf unser Button angesetzt, dass wir den Code für
unser Button, der bisher aus den beiden Zeilen rechenButton = new JButton("Fakultät[n]");
bestand, die folgende noch hinzufügt: rechenButton.addActionListener(this); In dem Wörtchen this drückt sich
aus, dass die Klasse, deren Quellcode wir gerade bearbeiten, einen
ActionListener
als Lauscher bekommt. |
weitere Veränderungen | Einen
Lauscher auf unser Programm ansetzen macht nur einen Sinn, wenn das
Programm, im Falle des Klickens auch etwas tut, also reagiert. Dies
garantiert Java durch die folgende Vorgehensweise. Als erstes wir die Kopfzeile des Programms verändert. Sie heißt jetzt: public class EinUndAusgabe extends JFrame implements ActionListener
Neu sind die beiden letzten Worte
implements ActionListener.
Ohne den Kapiteln über OOP vorgreifen zu wollen, sei soviel verraten:
ActionListener
ist ein sog. Interface. Ein Interface hat eine oder mehr Methoden
angelegt, d.h. ihre Signatur bzw. Signaturen festgelegt, ohne sie aber zu
implementieren. Es ist nun zwingend verlangt, dass ein Programm, das ein
Interface implementiert, alle im Interface angelegten Methoden
implementiert, durch einen Code also eine Funktionalität verleiht. In
unserem Fall des Interfaces
ActionListener geht es um die
Methode
actionPerformed(ActionEvent e).
Wir müssen diese Methode also implementieren. Sobald der Lauscher eine
Aktion registriert, ruft er diese Methode dann auf, wobei er ihr ein
Objekt der Klasse
ActionEvent übergibt. |
action Performed(...) |
public void actionPerformed(ActionEvent e){ String eingabe = eingabeFeld.getText(); int zahl1 = Integer.parseInt(eingabe); long zahl2 = Mathematik.fakultaet(zahl1); ausgabeFeld.setText(""+zahl2); } oder kürzer public void actionPerformed(ActionEvent e){ int zahl = Integer.parseInt(eingabeFeld.getText()); ausgabeFeld.setText(""+ Mathematik.fakultaet(zahl)); } Wie dem Quellcode zu
entnehmen ist, muss im Verzeichnis, in dem
EinUndAusgabe
gespeichert ist, sich auch die Klasse Mathematik.class befinden. |
Der ganze Quellcode Download: |
Der
gesamte Quellcode:
|
Ausgabe |
![]()
|
19.3 Mehrere Eingabefelder | |
zur Startseite | www.pohlig.de (C) MPohlig 2003 |