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

32.5 CheckboxGroup



Eine CheckboxGroup ist die Java-Variante einer Gruppe von Radiobuttons, also einer Kollektion von Buttons, von denen immer genau einer aktiviert ist. Wird ein anderer Button aktiviert, so ändert er seinen internen Status auf true, und der zuvor gesetzte wird false.

Eine CheckboxGroup ist nichts anderes als eine Checkbox, deren CheckboxGroup-Parameter gesetzt ist.

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

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

Anders als bei einer gewöhnlichen Checkbox stehen jetzt nur noch zwei Konstruktoren zur Verfügung. An diese werden die Beschriftung, der Anfangszustand und ein Objekt der Klasse CheckboxGroup übergeben.

Die CheckboxGroup sorgt dabei für den Gruppierungseffekt und die Logik beim Umschalten der Radiobuttons. Für jede zusammenhängende Gruppe von Radiobuttons ist daher ein eigenes Objekt der Klasse CheckboxGroup zu instanzieren und an den Konstruktor zu übergeben.

Die CheckboxGroup bietet alle Methoden, die auch bei einer Checkbox verfügbar sind. setState funktioniert allerdings nur dann, wenn als Parameter true übergeben wird. In diesem Fall wird der Zustand der zugehörigen Checkbox gesetzt und der aller anderen Checkboxes derselben Gruppe zurückgenommen. Bei der Übergabe von false an setState passiert gar nichts. Zusätzlich gibt es zwei Methoden getCheckboxGroup und setCheckboxGroup, die den Zugriff auf die zugeordnete CheckboxGroup erlauben:

public void setCheckboxGroup(CheckboxGroup cbg)

public CheckboxGroup getCheckboxGroup()
java.awt.Checkbox

Mit setCheckboxGroup kann die Zuordnung der Checkboxes zu einer CheckboxGroup auch nach der Konstruktion geändert werden. Das beim Aufruf von getCheckboxGroup zurückgegebene Objekt kann dazu verwendet werden, mit Hilfe der Methoden getCurrent und setCurrent der Klasse CheckboxGroup auf das selektierte Element der CheckboxGroup zuzugreifen:

public Checkbox getCurrent()

public void setCurrent(Checkbox box)
java.awt.CheckboxGroup

getCurrent liefert die Checkbox, deren Zustand true ist. Um mit setCurrent eine Checkbox zu aktivieren, muß diese als Parameter übergeben werden. Alle anderen Checkboxes derselben Gruppe bekommen dann den Zustand false.

Die einzelnen Checkboxes einer CheckboxGroup senden ein ITEM-Event, wenn die Checkbox selektiert wird. Dagegen wird kein Ereignis gesendet, wenn die Checkbox deselektiert wird oder wenn ihr Zustand nicht vom Anwender, sondern vom Programm verändert wird.

Das folgende Beispiel zeigt die Definition von zwei Objekten des Typs CheckboxGroup mit jeweils drei Elementen. In jeder der beiden Gruppen ist immer genau ein Element markiert, das unabhängig von den Elementen der anderen Gruppe ausgewählt werden kann:

001 /* CheckboxGroup.inc */
002 
003 private void customizeLayout(Panel panel)
004 {
005   panel.setLayout(new GridLayout(3,2));
006   CheckboxGroup cbg1 = new CheckboxGroup();
007   CheckboxGroup cbg2 = new CheckboxGroup();
008   panel.add(new Checkbox("rot",cbg1,true));
009   panel.add(new Checkbox("eckig",cbg2,true));
010   panel.add(new Checkbox("blau",cbg1,false));
011   panel.add(new Checkbox("rund",cbg2,false));
012   panel.add(new Checkbox("gelb",cbg1,false));
013   panel.add(new Checkbox("schief",cbg2,false));
014 }
CheckboxGroup.inc
Listing 32.5: Verwendung einer CheckboxGroup

Abbildung 32.5: Ein Dialog mit CheckboxGroup-Elementen


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