Script Java

Script Java Script Java

29.01.2014 Aufrufe

2.2 Checkbox Checkboxes Abbildung 2-5: Business Cards - Version 2, UserFrame 2.2.1.1 Checkbox, radio buttons und CheckboxGroup Mit Hilfe von Checkboxes ist es nun möglich, beim Erfassen einer Person auch die Anredeform auszuwählen. Bei einer Checkbox handelt es sich um eine beschriftete Komponente, die entweder selektiert oder nicht selektiert ist; man kann also eine binäre Auswahl 1 treffen. Werden mehrere Checkboxes zusammen einer sogenannten CheckboxGroup zugeordnet, so kann jeweils immer nur eine dieser Checkboxes gleichzeitig selektiert sein. In Abbildung 2-5 sind die drei Checkboxes mit der Beschriftung Mr, Mrs und Ms sichtbar, welche zusammen einer CheckboxGroup zugeordnet sind. Übrigens unterscheiden sich Checkboxes, welche einer CheckboxGroup angehören, optisch von solchen, die keiner CheckboxGroup zugeordnet sind. Erstere werden auch aufgrund ihres gegenseitigen Ausschlusses umgangssprachlich als radio buttons bezeichnet. In der Attributdeklaration finden wir nun das Objekt title der Klasse CheckboxGroup vor. In der Methode UserFrame() sind folgende Zeilen neu und interessant: 1 Im Sinne von: wahr oder nicht wahr, selektiert oder nicht selektiert. 38

2.3 Vererbung, Konstruktor und Redefinition title = new CheckboxGroup(); place(new Checkbox("Mr",true,title),30,30,40,20); place(new Checkbox("Mrs",false,title),80,30,40,20); place(new Checkbox("Ms",false,title),130,30,40,20); Die erste Anweisung generiert eine Instanz der Klasse CheckboxGroup und bezeichnet diese mit title, damit wir nun fortan diese Instanz ansprechen können. In den folgenden drei Zeilen werden mit der uns bereits vertrauten Methode place() die in Abbildung 2-5 ersichtlichen Checkboxes plaziert. Beim ersten Parameter der Methode place() handelt es sich ja um die zu positionierende Komponente. Schauen wir uns den ersten Parameter des ersten Aufrufs noch ein wenig genauer an: new Checkbox("Mr",true,title) Es handelt sich hier erneut um einen Methodenaufruf. Dieser liefert ein Objekt der Klasse Checkbox zurück, welches die Beschriftung (engl. label) "Mr" hat, zu Beginn des Programms selektiert ist und der CheckboxGroup title zugeordnet ist. Würde der zweite Parameter in obigem Aufruf false lauten, wäre die Checkbox nicht selektiert. Der letzte Unterschied schlussendlich im Vergleich zur Version 1 ist in der Methode actionPerformed() zu finden, nämlich im ersten Aufruf von println(). Dort wird nun neu der Text title.getSelectedCheckbox().getLabel() durch ein Leerzeichen getrennt vor den Namen der Person gestellt. Der CheckboxGroup title wird die Botschaft getSelectedCheckbox() gesandt. Daraufhin erhält man nun diejenige Instanz der Klasse Checkbox, die zur Zeit selektiert ist. Dieser selektierten Instanz der Klasse Checkbox wird nun die Botschaft getLabel() geschickt, worauf diese ihre Beschriftung zurückgibt. Die obigen zwei ineinandergeschachtelten Methodenaufrufe müssen also – wie immer – von links nach rechts gelesen werden. 2.3 Vererbung, Konstruktor und Redefinition Erneut wurde das Programm „Business Cards - Version 2“ zu einer Version 3 erweitert. Hierbei sind die Neuerungen von Version 2 zu Version wiederum 3 fett hervorgehoben. import java.awt.*; import java.awt.event.*; public class Card extends Frame { private String title, firstName, familyName, street, zipCode, city; 39

2.3 Vererbung, Konstruktor und Redefinition<br />

title = new CheckboxGroup();<br />

place(new Checkbox("Mr",true,title),30,30,40,20);<br />

place(new Checkbox("Mrs",false,title),80,30,40,20);<br />

place(new Checkbox("Ms",false,title),130,30,40,20);<br />

Die erste Anweisung generiert eine Instanz der Klasse CheckboxGroup und bezeichnet<br />

diese mit title, damit wir nun fortan diese Instanz ansprechen können. In den folgenden<br />

drei Zeilen werden mit der uns bereits vertrauten Methode place() die in Abbildung 2-5<br />

ersichtlichen Checkboxes plaziert. Beim ersten Parameter der Methode place() handelt<br />

es sich ja um die zu positionierende Komponente. Schauen wir uns den ersten Parameter<br />

des ersten Aufrufs noch ein wenig genauer an:<br />

new Checkbox("Mr",true,title)<br />

Es handelt sich hier erneut um einen Methodenaufruf. Dieser liefert ein Objekt der Klasse<br />

Checkbox zurück, welches die Beschriftung (engl. label) "Mr" hat, zu Beginn des<br />

Programms selektiert ist und der CheckboxGroup title zugeordnet ist. Würde der<br />

zweite Parameter in obigem Aufruf false lauten, wäre die Checkbox nicht selektiert.<br />

Der letzte Unterschied schlussendlich im Vergleich zur Version 1 ist in der Methode<br />

actionPerformed() zu finden, nämlich im ersten Aufruf von println(). Dort<br />

wird nun neu der Text<br />

title.getSelectedCheckbox().getLabel()<br />

durch ein Leerzeichen getrennt vor den Namen der Person gestellt.<br />

Der CheckboxGroup title wird die Botschaft getSelectedCheckbox() gesandt.<br />

Daraufhin erhält man nun diejenige Instanz der Klasse Checkbox, die zur Zeit selektiert<br />

ist. Dieser selektierten Instanz der Klasse Checkbox wird nun die Botschaft<br />

getLabel() geschickt, worauf diese ihre Beschriftung zurückgibt. Die obigen zwei<br />

ineinandergeschachtelten Methodenaufrufe müssen also – wie immer – von links nach<br />

rechts gelesen werden.<br />

2.3 Vererbung, Konstruktor und Redefinition<br />

Erneut wurde das Programm „Business Cards - Version 2“ zu einer Version 3 erweitert.<br />

Hierbei sind die Neuerungen von Version 2 zu Version wiederum 3 fett hervorgehoben.<br />

import java.awt.*;<br />

import java.awt.event.*;<br />

public class Card extends Frame {<br />

private String title, firstName, familyName, street, zipCode, city;<br />

39

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!