Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage
<< | < | > | >> | API | Kapitel 32 - AWT-Dialogelemente

## 32.4 Checkbox

- 32.4 Checkbox

Eine `Checkbox` ist ein Eingabeelement, das eine Zustandsvariable besitzt, die zwischen den Werten `true` und `false` umgeschaltet werden kann. Der aktuelle Zustand wird durch ein Häkchen oder Kreuz in der `Checkbox` angezeigt.

    public Checkbox()

    public Checkbox(String label)

    public Checkbox(String label, boolean state)

    public Checkbox(String label, CheckboxGroup cbg, boolean state)

    public Checkbox(String label, boolean state, CheckboxGroup cbg)
| java.awt.Checkbox

Der parameterlose Konstruktor erzeugt eine `Checkbox` ohne Beschriftung mit dem Anfangszustand `false`. Wird der String `label` angegeben, bekommt die `Checkbox` die angegebene Beschriftung. Durch Übergabe des booleschen Parameters `state` ist es möglich, den anfänglichen Zustand der `Checkbox` vorzugeben. Der in den letzten beiden Konstruktoren verwendete Parameter `cbg` dient zur Gruppierung von Radiobuttons und sollte bei einer `Checkbox` stets `null` sein.

    public String getLabel()

    public void setLabel(String label)

    public boolean getState()

    public void setState(boolean state)
| java.awt.Checkbox

Die Methoden ermöglichen den Zugriff auf die Beschriftung und den aktuellen Zustand der `Checkbox`.

Oft repräsentiert eine `Checkbox` einen logischen Schalter, dessen Zustand abgefragt wird, nachdem der Dialog beendet wurde. Zusätzlich kann aber auch unmittelbar auf eine Zustandsänderung reagiert werden, denn eine `Checkbox` generiert ein Item-Event, wenn die Markierung vom Anwender gesetzt oder zurückgenommen wird. Um auf dieses Event zu reagieren, ist durch Aufruf von `addItemListener` ein Objekt, das das Interface `ItemListener` implementiert, bei der `Checkbox` zu registrieren:

    public void addItemListener(ItemListener l)
| java.awt.Checkbox

Ein Item-Event wird immer dann gesendet, wenn sich der Zustand einer Checkbox verändert hat. In diesem Fall wird im Ereignisempfänger die Methode `itemStateChanged` mit einem Argument vom Typ `ItemEvent` aufgerufen:

    public abstract void itemStateChanged(ItemEvent e)
| java.awt.event.ItemListener

Das `ItemEvent` stellt die Methode `getItemSelectable` zur Verfügung, mit der ermittelt werden kann, durch welche `Checkbox` das Ereignis ausgelöst wurde:

    public ItemSelectable getItemSelectable()
| java.awt.event.ItemEvent

Der Rückgabewert kann dann in ein Objekt des Typs `Checkbox` konvertiert werden. Durch Aufruf von `getState` kann der aktuelle Zustand bestimmt werden.

    001 /* Checkbox1.inc */
    002
    003 private void customizeLayout(Panel panel)
    004 {
    005   panel.setLayout(new GridLayout(3,1));
    006   Checkbox cb = new Checkbox("Checkbox 1");
    007   cb.addItemListener(this);
    008   panel.add(cb);
    009   cb = new Checkbox("Checkbox 2", true);
    010   cb.addItemListener(this);
    011   panel.add(cb);
    012   cb = new Checkbox("Checkbox 3", false);
    013   cb.addItemListener(this);
    014   panel.add(cb);
    015 }
| Checkbox1.inc

Listing 32.3: Verwendung von Checkbox-Komponenten

Abbildung 32.4: Ein Dialog mit Checkbox-Komponenten

Das folgende Listing zeigt eine beispielhafte Implementierung der Methode `itemStateChanged`, die in der Klasse `MyDialog` beim Auftreten eines Item-Events aufgerufen wird (zusätzlich muß `MyDialog` das Interface `ItemListener` implementieren):

    001 /* Checkbox2.inc */
    002
    003 public void itemStateChanged(ItemEvent event)
    004 {
    005   Checkbox cb = (Checkbox) event.getItemSelectable();
    006   System.out.println(cb.getLabel() + ": " + cb.getState());
    007 }
| Checkbox2.inc

Listing 32.4: Behandlung von Item-Events

Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0
<< | < | > | >> | API | © 1998-2002 Guido Krüger, http://www.javabuch.de