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/k100215.html | 318 +++++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100215.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100215.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100215.html b/Master/Reference Architectures and Patterns/hjp5/html/k100215.html new file mode 100644 index 0000000..efa7a30 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100215.html @@ -0,0 +1,318 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 32 - AWT-Dialogelemente +
+
+ + + + +

32.9 List

+
+ +
+ +

+Eine List +ist eine listenartige Darstellung von Werten, aus denen der Anwender +einen oder mehrere auswählen kann. Anders als ein Choice-Element +ist ein Element der Klasse List +ständig in voller Größe auf dem Bildschirm sichtbar. +Unter Windows werden Objekte der Klasse List +durch Listboxen dargestellt. +

+ + + + + +
+ +
+public List()
+
+public List(int size)
+
+public List(int size, boolean multiselect)
+
+
+
+java.awt.List
+ +

+Der parameterlose Konstruktor legt eine leere Listbox an, deren dargestellte +Größe vom Layoutmanager begrenzt wird. Der Parameter size +legt die Anzahl der angezeigten Zeilen fest. Dabei können auch +mehr Elemente in der Listbox enthalten sein, als auf einmal angezeigt +werden können. List-Dialogelemente +können wahlweise die Mehrfachselektion +von Elementen zulassen. Wird bei der Konstruktion der Listbox der +Parameter multiselect auf true +gesetzt, kann der Anwender nicht nur ein Element, sondern auch mehrere +Elemente selektieren. + +

+Das Dialogelement List +bietet nahezu dieselbe Funktionalität wie Choice. +Zusätzlich stehen die Methoden getSelectedIndexes +und getSelectedItems +zur Verfügung, um bei einer Mehrfachselektion auf die selektierten +Elemente zugreifen zu können: +

+ + + + + +
+ +
+public int[] getSelectedIndexes()
+
+public String[] getSelectedItems()
+
+
+
+java.awt.List
+ +

+getSelectedIndexes +liefert ein Array mit den Indexpositionen aller selektierten Elemente, +und getSelectedItems +liefert eine Liste der Werte selbst. + +

+Mit den Methoden select +und deselect +lassen sich einzelne Elemente selektieren oder deselektieren: +

+ + + + + +
+ +
+public void select(int index)
+
+public void deselect(int index)
+
+
+
+java.awt.List
+ +

+Im Gegensatz zu Choice +ist es bei einer Komponente des Typs List +auch möglich, Elemente zu entfernen oder ihren Wert zu ändern: +

+ + + + + +
+ +
+public void delItem(int index)
+
+public void remove(int index)
+
+public void replaceItem(String newValue, int index)
+
+
+
+java.awt.List
+ +

+Sowohl delItem +als auch remove +löschen das Element an der Position index, +und replaceItem +ersetzt das Element an der Position index +durch den neuen Wert newValue. + +

+Eine List +sendet sowohl Item-Ereignisse als auch Action-Ereignisse. Ein Action-Ereignis +wird dann generiert, wenn ein Listenelement per Doppelklick ausgewählt +wurde. Das Drücken der ENTER-Taste löst - wenigstens in +der aktuellen Windows-Implementierung - kein Action-Ereignis +aus. Ein Item-Ereignis wird ausgelöst, nachdem in der Liste ein +Element ausgewählt wurde. Bezüglich der Implementierung +von Event-Handlern für diese Ereignisse verweisen wir auf die +Beschreibungen der Klassen Choice +und TextField +weiter oben. +

+ + + + + + + + + + + +
+ +

+Falls ein Item-Ereignis ausgelöst wurde, verhält sich die +Methode getItemSelectable +des ItemEvent +analog zu Choice +und liefert das List-Objekt, +das das Ereignis ausgelöst hat. Der Rückgabewert von getItem +ist dagegen anders zu interpretieren, denn er liefert nicht das ausgewählte +Element als String, +sondern dessen Position als Integer-Objekt. +Dieses kann mit intValue +in ein int +konvertiert werden, das die Position des ausgewählten Elements +liefert. Beispielhafte Implementierungen von actionPerformed +und itemStateChanged +könnten folgendermaßen aussehen:

+ + + + +
 Warnung 
+
+ + +

+ + + + + +
+ +
+001 /* List2.inc */
+002 
+003 public void itemStateChanged(ItemEvent event)
+004 {
+005   List list = (List) event.getItemSelectable();
+006   String str1 = list.getSelectedItem();
+007   int pos = ((Integer) event.getItem()).intValue();
+008   System.out.println("list.getSelectedItem: " + str1);
+009   System.out.println("event.getItem:        " + pos);
+010 }
+011 
+012 public void actionPerformed(ActionEvent event)
+013 {
+014    Object obj = event.getSource();
+015    if (obj instanceof List) {
+016       System.out.println("ListAction: "+event.getActionCommand());
+017    } else if (obj instanceof Button) {
+018       if (event.getActionCommand().equals("Ende")) {
+019          endDialog();
+020       }
+021    }
+022 }
+
+
+List2.inc
+ +Listing 32.13: Behandlung der Ereignisse einer List-Komponente

+ +

+Das Beispielprogramm für die Verwendung der List-Komponente +sieht so aus: + + +

+ + + + + +
+ +
+001 /* List1.inc */
+002 
+003 private void customizeLayout(Panel panel)
+004 {
+005   panel.setLayout(new FlowLayout(FlowLayout.LEFT));
+006   List list = new List(6,false);
+007   list.addActionListener(this);
+008   list.addItemListener(this);
+009   list.add("Äpfel");
+010   list.add("Birnen");
+011   list.add("Bananen");
+012   list.add("Pfirsiche");
+013   list.add("Kirschen");
+014   list.add("Kiwis");
+015   list.add("Ananas");
+016   list.add("Erdbeeren");
+017   list.add("Blaubeeren");
+018   list.add("Mandarinen");
+019   panel.add(list);
+020   list.select(1);
+021 }
+
+
+List1.inc
+ +Listing 32.14: Verwendung einer List-Komponente

+

+ + +

+ +

+Abbildung 32.9: Ein Dialog mit einer Listbox

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