From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100214.html | 357 +++++++++++++++++++++ 1 file changed, 357 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100214.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100214.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100214.html b/Master/Reference Architectures and Patterns/hjp5/html/k100214.html new file mode 100644 index 0000000..0ab5b86 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100214.html @@ -0,0 +1,357 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 32 - AWT-Dialogelemente +
+
+ + + + +

32.8 Choice

+
+ +
+ +

+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.

+ + + + +
 JDK1.1-6.0 
+
+ +

+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 dass 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
+ +Listing 32.11: Behandlung der Ereignisse einer Choice-Komponente

+ +

+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
+ +Listing 32.12: Verwendung einer Choice-Komponente

+

+ + +

+ +

+Abbildung 32.8: Ein Dialog mit einer Choice-Komponente

+
+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3