29.01.2014 Aufrufe

Script Java

Script Java

Script Java

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.1 ActionEvent und ActionListener<br />

public class UserFrame extends Frame implements ActionListener<br />

Das Schlüsselwort implements besagt, dass die Klasse UserFrame das Interface<br />

ActionListener implementiert. Dies hat zur Folge, dass sie eine Implementation für<br />

dessen abstrakte Methode<br />

public abstract void actionPerformed(ActionEvent e)<br />

liefern muss.<br />

Da die im UserFrame deklarierte Methode actionPerforemed() die gleichnamige<br />

abstrakte Methode des Interface ActionListener implementiert, ist sie nicht mehr<br />

abstrakt. Das Schlüsselwort abstract in der Methodenschnittstelle entfällt.<br />

public void actionPerformed(ActionEvent event) {<br />

String command = event.getActionCommand();<br />

if (command.equals("START")) start();<br />

else if (command.equals("NEW GAME")) newGame();<br />

else if (command.equals("YOUR TURN")) myTurn();<br />

else if (command.equals("TAKE ONE")) userTakes(1);<br />

else if (command.equals("TAKE TWO")) userTakes(2);<br />

else if (command.equals("TAKE THREE")) userTakes(3);<br />

}<br />

Die Methode actionPerformed() erhält den durch den Button generierten<br />

ActionEvent als Parameter. Dieser wird innerhalb der Methode mit event bezeichnet.<br />

In der Anweisung<br />

String command = event.getActionCommand();<br />

liefert die Botschaft getActionCommand() die Beschriftung desjenigen Buttons<br />

zurück, der das Ereignis ausgelöst hat. Dieser String wird dann der lokalen Variablen<br />

command zugewiesen. Die Methode getActionCommand() ist in der Klasse<br />

ActionEvent deklariert.<br />

Nun wird in der Anweisungssequenz<br />

if (command.equals("START")) start();<br />

else if (command.equals("NEW GAME")) newGame();<br />

else if (command.equals("YOUR TURN")) myTurn();<br />

else if (command.equals("TAKE ONE")) userTakes(1);<br />

else if (command.equals("TAKE TWO")) userTakes(2);<br />

else if (command.equals("TAKE THREE")) userTakes(3);<br />

in Abhängigkeit vom ereignisgenerierenden Button der Programmverlauf bestimmt: von<br />

Fall zu Fall wird eine andere Methode aufgerufen, wodurch der in Abbildung 5-7<br />

ersichtliche Zustandswechsel erfolgt.<br />

Damit nun der ActionListener UserFrame die Ereignisobjekte der Buttons turn,<br />

take1, take2 und take3 „hört“, muss er bei ihnen registriert werden. Dies geschieht<br />

ebenfalls in der Klasse UserFrame:<br />

140

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!