|
Die Checkbox ist ein weiteres graphisches Oberflächenelement, das häufig anzutreffen ist. Da gesetzt, d.h. mit Haken versehen sein kann oder nicht, eignet sie sich in unserem Projekt sehr gut, um den Status der Sommerzeit anzuzeigen.
Das Vorgehen zum Erzeugen einer Checkbox ist anolog zum Erzeugen der bisherigen Oberflächenkomponenten:
1. Man wählt in der AWT-Symbolleiste den entsprechenden Button aus.
2. Dann zieht man im Formular-Fenster mit der Maus ein Rechteck auf. Dort wird das Objekt der Klasse NumberField positioniert.
3. Über dem Objektinspektor gibt der Schaltfläche einen sprechenden Namen und ändert bei Bedarf Attributwerte.
- Background: Die Hintergrundfarbe
- Enabled: Falls auf true gesetzt, sind Eingaben durch den Benutzer möglich
- Font: Hier öffnet sich ein Fenster, über das die Werte der Attribute Schriftart, Schriftgröße, Schriftfarbe etc. gesetzt werden können.
- Label: Die Beschriftung bei der Erzeugung des Objekts
- State: Information, ob die Checkbox gesetzt ist oder nicht
Passend dazu gibt es wieder die entsprechenden Setter- und Getter-Methoden.
Wie wird nun die Checkbox in unser Projekt integriert?
- Da sie nur zur Anzeige des Werts des Attributs sommerzeit genutzt werden soll, ist es sinnvoll keine Eingaben zu erlauben (Enabled muss auf false gesetzt werden)
- Damit auch der Startwert des Attributs sommerzeit richtig angezeigt wird, muss dieser im Konstruktor abgefragt und dann auf die Anzeige übertragen werden. Dies erfolgt über den Methodenaufruf:
checkboxSommerzeit.setState(zeit.SommerzeitGeben());
- Werden einer unserer Buttons gedrückt, so ändert sich ja gegebenenfalls der Wert der Sommerzeit. Die Anzeige muss dann aktualisiert werden. Deshalb muss der gleiche Methodenaufruf wie im Konstruktor auch in den Action-Performed-Methoden der Buttons ergänzt werden.
Wie auch schon beim Textfeld, wäre auch über eine Checkbox eine Eingabe möglich. Wenn das Attribut Enabled auf true gesetzt ist, kann man durch einen Mausklick in der Ckeckbox einen Haken setzen, bzw. diesen entfernen. Selbstverständlich soll dieses Ereignis (analog zu den ereignissen beim Button oder dem TextField) Methodenaufrufe nach sich ziehen. Diese müssen im Rumpf der Methode ..._itemStateChanged eingefügt werden. Vorbereitet wird diese wieder durch einen Klick in das entsprechende Feld beim Objektinspektor. Ein Doppelklick dorthin führt wiederum direkt zur Zeile im Quelltext.
 
Hinweise für Experten:
Wer möchte kann gerne auch mit der Eingabe über die Checkbox experimentieren. Es gäbe dann zwei Möglichkeiten den Wert des Attributs Sommerzeit zu ändern:
- Über die Buttons
- Über die Checkbox
Man muss also darauf achten, dass das System immer konsistent arbeitet, egal welchen Weg man wählt. Um dies sicherzustellen, sollte man entsprechende Tests durchführen.
- // Anfang Attribute
private Label ueberschrift1 = new Label();
|