Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage |
<< | < | > | >> | API | Kapitel 32 - AWT-Dialogelemente |
Ein Choice-Menü ist ein aufklappbares Textfeld, dessen Inhalt aus einer vom Programm vorgegebenen Liste ausgewählt werden kann. Dialogelemente des Typs Choice entsprechen den unter Windows üblichen Drop-Down-Listboxen, einer eingeschränkten Form der Comboboxen, bei denen das zugehörige Editfeld nicht separat geändert werden kann.
public Choice() |
java.awt.Choice |
Der parameterlose Konstruktor erstellt ein Choice-Objekt mit einer leeren Liste.
Eine der wichtigsten Methoden der Klasse Choice ist add:
public void add(String item) |
java.awt.Choice |
Jeder Aufruf von add hängt das übergebene Element item an das Ende der Liste an. Die Elemente werden dabei in der Reihenfolge der Aufrufe von add eingefügt. Eine automatische Sortierung wurde in Java nicht vorgesehen.
Analog zur Methode add gibt es eine bedeutungsgleiche Methode addItem. Während in der Klasse Choice beide Methoden verwendet werden können, wurde die Methode addItem in der Klasse List mit dem JDK 1.2 als deprecated markiert, sollte also nicht mehr verwendet werden. |
|
Für den Zugriff auf die Elemente der Combobox stehen die Methoden getItemCount, getSelectedIndex, getItem und getSelectedItem zur Verfügung:
public int getSelectedIndex() public String getItem(int n) public String getSelectedItem() public int getItemCount() |
java.awt.Choice |
getItemCount liefert die Anzahl der Elemente, die sich gegenwärtig in der Liste befinden. Mit getItem kann auf das n-te Element der Liste über seinen Index zugegriffen werden; die Zählung beginnt bei 0.
getSelectedIndex liefert den Index des selektierten Elements, so daß durch Übergabe dieses Wertes an getItem das aktuelle Element beschafft werden kann. Alternativ dazu kann getSelectedItem aufgerufen werden, um ohne explizite Kenntnis der internen Nummer das selektierte Element zu beschaffen.
Ebenso wie der Anwender kann auch das Programm selbst ein Element aus der Liste selektieren:
public select(int) public select(String) |
java.awt.Choice |
Hierbei wird an select wahlweise ein int oder ein String übergeben. Im ersten Fall wird das Element über seinen numerischen Index selektiert, im zweiten direkt durch Suche des angegebenen Wertes.
Ebenso wie eine Checkbox sendet auch ein Choice-Element Item-Ereignisse, wenn ein Element selektiert wurde. Um auf dieses Event zu reagieren, ist durch Aufruf von addItemListener ein ItemListener zu registrieren:
public void addItemListener(ItemListener l) |
java.awt.Choice |
Ein Item-Event wird immer dann gesendet, wenn ein anderes Element ausgewählt wurde. 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.ItemEvent |
Das ItemEvent stellt die Methode getItemSelectable zur Verfügung, mit der ermittelt werden kann, durch welches Choice-Element das Ereignis ausgelöst wurde. Zusätzlich gibt es die Methode getItem, die das ausgewählte Element als String zur Verfügung stellt:
public ItemSelectable getItemSelectable() public Object getItem() |
java.awt.event.ItemEvent |
Damit kann offensichtlich auf zwei unterschiedliche Arten auf die Änderung der Auswahl reagiert werden. Einerseits kann mit getItemSelectable ein Choice-Element beschafft und mit getSelectedItem das selektierte Element ermittelt werden. Andererseits kann getItem aufgerufen und das Ergebnis in einen String umgewandelt werden. Das folgende Listing demonstriert dies beispielhaft:
001 /* Choice2.inc */ 002 003 public void itemStateChanged(ItemEvent event) 004 { 005 Choice choice = (Choice) event.getItemSelectable(); 006 String str1 = choice.getSelectedItem(); 007 String str2 = (String) event.getItem(); 008 System.out.println("choice.getSelectedItem: " + str1); 009 System.out.println("event.getItem: " + str2); 010 } |
Choice2.inc |
Das Beispielprogramm zum Testen der Choice-Komponente sieht so aus:
001 /* Choice1.inc */ 002 003 private void customizeLayout(Panel panel) 004 { 005 panel.setLayout(new FlowLayout()); 006 Choice choice = new Choice(); 007 choice.addItemListener(this); 008 choice.add("rot"); 009 choice.add("grün"); 010 choice.add("gelb"); 011 choice.add("blau"); 012 choice.add("rosa"); 013 choice.add("lila"); 014 panel.add(choice); 015 } |
Choice1.inc |
Abbildung 32.8: Ein Dialog mit einer Choice-Komponente
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 |