List und TextArea


List

Die GUI-Komponente List zeigt eine Liste von Strings an und ermöglicht die grafische Auswahl eines Eintrags. Enthält die Liste mehr Einträge als auf Grund ihrer Größe gleichzeitig darstellbar sind, kann am rechten Rand eine ScrollBar eingeblendet werden. Der momentan durch den Benutzer ausgewählte Eintrag wird durch die Invertierung der entsprechenden Zeile hervorgehoben. Die GUI-Komponente List "feuert" ActionEvents vom Typ ITEM_SELECTED. Die folgenden Methoden sind zur Erstellung einer Liste verfügbar:

MethodeBeschreibung
List(int x, int y, boolean scrollbar)Erzeugt eine neue GUI-Komponente List an der angegebenen Position. Der Parameter scrollbar zeigt an, ob ein Scrollbalken am rechten Listenrand gezeichnet werden soll. Da die Breiten- und Höhenangabe fehlt, wird bei der Verwendung dieses Konstruktors die bevorzugte Größe automatisch bestimmt.
List(int x, int y, int width, int height, boolean scrollbar)Dieser Konstruktor arbeitet genau wie sein o.a. Pendant mit dem Unterschied, dass Breite und Höhe der Liste vom Progammierer vorgegeben werden können.
add(String item)Fügt der Liste einen neuen Eintrag hinzu.
remove(String item)Entfernt einen Eintrag aus der Liste.
Tabelle 5: Methoden der Klasse jcontrol.ui.vole.List


TextArea

Mit der TextArea ist es möglich, längere Texte mit Scroll-Funktionalität anzuzeigen. Der Inhalt der TextArea kann entweder statisch im Konstruktor oder dynamisch mit der add-Methode übergeben werden. Die Methode remove ermöglicht es, einzelne Textzeilen wieder zu entfernen. Tabelle 6 fasst die Methoden der TextArea zusammen:

MethodeBeschreibung
TextArea(int x, int y, int width, int height, boolean showScrollbar)Erzeugt eine neue TextArea mit der angegebenen Position und Größe. Der Parameter boolean legt fest, ob am rechten Rand der TextArea ein Scrollbalken gezeichnet werden soll.
TextArea(String[] text, int x, int y, int width, int height, boolean showScrollbar)Bei diesem Konstruktor kann neben den o.g. Parametern noch ein String-Array mit dem initialen Textinhalt der TextArea übergeben werden.
add(String item)Fügt der TextArea eine neue Textzeile hinzu. Die Länge des Strings darf dabei die Breite der TextArea nicht überschreiten. Sollte der String länger sein, so wird er auf die passende Länge getrimmt (die hinteren Zeichen werden abgeschnitten).
remove(int row)Entfernt die Zeile mit der als Parameter übergebenen Zeilennummer aus der TextArea. Die nachfolgenden Zeilen rücken dem entsprechend um eine Zeile nach oben.
Tabelle 6: Methoden der Klasse jcontrol.ui.vole.TextArea

Im Folgenden ist ein Quelltext-Beispiel aufgeführt, dass sowohl ein List-Objekt als auch eine TextArea anlegt, mit einigen Einträgen füllt und auf dem Display darstellt. Laden Sie das Projekt VoleListTextareaExample.jcp aus dem ZIP-Archiv VoleListTextareaExample.zip in Ihre JControl/IDE, um das Beispiel in Aktion zu sehen. Bild 4 zeigt einen Screenshot des Programms.

Bild 4: Das VoleListTextareaExample

1    import jcontrol.ui.vole.Frame;
2    import jcontrol.ui.vole.List;
3    import jcontrol.ui.vole.TextArea;
4    
5    /**
6     * <p>This example demonstrates how to use the
7     * components List and TextArea within the GUI
8     * framework JControl/Vole.</p>
9     *
10     * <p>(C) DOMOLOGIC Home Automation GmbH 2003-2005</p>
11     */
12    public class VoleListTextareaExample extends Frame {
13     
14      /**
15       * Create a List and a TextArea.
16       */
17      public VoleListTextareaExample() {
18        // create a list with some entries
19        List l = new List(0, 0, 128, 31, true);
20        l.add("North");
21        l.add("South");
22        l.add("East");
23        l.add("West");
24        l.add("North-East");
25        l.add("North-West");
26        l.add("South-East");
27        l.add("South-West");
28        this.add(l);
29       
30        // create a TextArea
31        TextArea ta = new TextArea(new String[]{"The TextArea",
32                                                 "can be filled",
33                                                 "up with nonsense",
34                                                 "and nobody really",
35                                                 "cares about it."},
36                                   0, 32, 128, 32, true);
37        this.add(ta);
38      }
39    
40      /**
41       * Instantiate the VoleListTextareaExample
42       */
43      public static void main(String[] args) {
44        new VoleListTextareaExample().show();
45      }
46    }
Listing 4: VoleListTextareaExample.java