29.01.2014 Aufrufe

Script Java

Script Java

Script Java

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6.2 Visiblity Modifiers<br />

Eine Instanz der Klasse MenuBar beinhaltet ein oder mehrere Menus, welche ihrerseits<br />

MenuItems oder wiederum Menus (Untermenus) umfassen. Die Klassen MenuBar,<br />

Menu und MenuItem sind Unterklassen von MenuComponent, welche auf gleicher<br />

Hierarchiestufe wie Component steht.<br />

Die Methode<br />

public Menu add(Menu m)<br />

fügt einem MenuBar ein Menu zu und die Methode<br />

public MenuItem add(MenuItem mi)<br />

einem Menu ein MenuItem.<br />

In den Zeilen<br />

menuBar = new MenuBar();<br />

menuBar.add(preferences = new Menu("Preferences"));<br />

preferences.add(sentenceItem=new MenuItem("Sentence"));<br />

sentenceItem.addActionListener(this);<br />

preferences.add(negationItem=new MenuItem("Negation"));<br />

negationItem.addActionListener(this);<br />

preferences.add(questionItem=new MenuItem("Question"));<br />

questionItem.addActionListener(this);<br />

setMenuBar(menuBar);<br />

wird ein Menu mit der Beschriftung „Preferences“ kreiert, welches die MenuItems<br />

„Sentence“, „Negation“ und „Question“ aufweist. In der letzten Anweisung wird<br />

menuBar dem UserFrame zugeordnet.<br />

Da MenuItems ActionEvents generieren, bekommen sie allesamt UserFrame als ihren<br />

Listener registriert.<br />

Im Unterschied zu der in Abschnitt 6.1.1.4 vorgestellten Lösung für die Implementierung<br />

eines Satzgenerators wird in diesem Programm die Vererbung eingesetzt: die Klasse<br />

SentenceGenerator hat die zwei Unterklassen NegationGenerator und<br />

QuestionGenerator, welche beide die Methode compose() redefinieren.<br />

Die Instanzvariable<br />

private SentenceGenerator generator;<br />

wird im Programm nun dazu verwendet, den aktuellen Satzgenerator zu referenzieren. Zu<br />

Programmbeginn verweist sie auf eine Instanz der Klasse SentenceGenerator,<br />

welcher auf diese Weise als Standard-Generator definiert wird. Im Programmverlauf kann<br />

generator aber auch aufgrund der Benutzerinteraktion Instanzen der Klassen<br />

NegationGenerator und QuestionGenerator referenzieren Die entsprechende<br />

159

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!