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