ComboBox und NumberChooser


ComboBox

Die ComboBox ist eine interaktive GUI-Komponente, die dem Benutzer mehrere Texteinträge zur Auswahl anbietet. Im deaktivierten Zustand ist sie zugeklappt und zeigt den derzeitig ausgewählten Eintrag an. Hat sie den Eingabefokus, kann die ComboBox vom Benutzer durch Betätigen der Select-Funktion geöffnet werden. Nun kann ein anderer Eintrag ausgewählt werden, wobei die Liste der Einträge herauf- oder herunterscrollt, wenn sie länger als der darstellbare Bereich ist.

Die wichtigsten Methoden der Klasse jcontrol.ui.vole.ComboBox sind in der folgenden Tabelle 1 aufgeführt:

MethodeBeschreibung
ComboBox(int x, int y)Erzeugt eine neue ComboBox an der angegebenen Position.
add(String item)Fügt der ComboBox einen neuen Eintrag hinzu.
String getSelectedItem()Gibt den momentan selektierten Eintrag der ComboBox als String zurück.
int getSelectedIndex()Gibt den Index des momentan selektierten Eintrags der ComboBox zurück.
remove(String item)Entfernt einen Eintrag aus der ComboBox.
select(int index)Selektiert den als Index übergebenen Eintrag in der ComboBox.
Tabelle 1: Methoden der Klasse jcontrol.ui.vole.Container

Installiert man mit Hilfe der Methode setActionListener(ActionListener listener) einen ActionListener auf die ComboBox, feuert sie ITEM_SELECTED-ActionEvents, wenn der Benutzer eine Auswahl tätigt.


NumberChooser

Der NumberChooser ist eine GUI-Komponente bestehend aus einem Textfeld und zwei Schaltflächen. Das Textfeld zeigt eine Dezimalzahl an, deren Wert durch Betätigen der beiden Pfeiltasten eingestellt werden kann. Dabei wird der Wert jeweils um 1 erhöht, bzw. reduziert (der Benutzer kann diese Schrittweite nicht direkt verändern). Minimaler und maximaler Wert müssen dem Konstruktor übergeben werden. Vom Programmierer beeinflussbar sind ferner die verwendete Schriftart sowie Größe und Position der GUI-Komponente. Folgende Methoden stehen zur Verfügung:

MethodeBeschreibung
NumberChooser(int x, int y, int min, int max)Erzeugt einen neuen NumberChooser an der angegebenen Position mit dem durch die Parameter min und max abgegrenzten Wertebereich.
int getValue()Gibt den aktuellen Wert der GUI-Komponente NumberChooser zurück.
setFont(Resource font)Ändert die Schriftart zur Darstellung des Textfeldes in die durch die Resource übergebene.
setValue(int value)Ändert den Wert des der GUI-Komponente NumberChooser. Der neue Wert muss innerhalb des dem Konstruktor übergebenen Wertebereichs liegen.
Tabelle 2: Methoden der Klasse jcontrol.ui.vole.NumberChooser

Zum Abschluss dieses Kapitels soll ein kurzer Quelltext gezeigt werden, der den Umgang mit den GUI-Komponenten ComboBox und NumberChooser demonstriert. Er ist ebenfalls in der Datei VoleComboNumberExample.zip enthalten. Bild 2 zeigt einen Screenshot des Beispielprogramms.

Bild 2: Das VoleComboNumberExample

1    import jcontrol.system.Time;
2    import jcontrol.ui.vole.Border;
3    import jcontrol.ui.vole.ComboBox;
4    import jcontrol.ui.vole.Container;
5    import jcontrol.ui.vole.Frame;
6    import jcontrol.ui.vole.NumberChooser;
7    
8    /**
9     * <p>This example demonstrates how to use the
10     * components ComboBox and NumberChooser within
11     * the GUI framework JControl/Vole.</p>
12     *
13     * <p>(C) DOMOLOGIC Home Automation GmbH 2003-2005</p>
14     */
15    public class VoleComboNumberExample extends Frame {
16     
17      /**
18       * Create Vole ComboBox and NumberChooser UI elements.
19       */
20      public VoleComboNumberExample() {
21        // create a new ComboBox
22        ComboBox cb = new ComboBox(10,10);
23    
24        // add some entries
25        cb.add("Vole");
26        cb.add("Mole");
27        cb.add("Tiger");
28        cb.add("Lion");
29        cb.add("Elephant");
30        cb.add("Tyrannosaurus Rex");
31       
32        // add the box to our Frame
33        this.add(cb);
34       
35       
36        // create some NumberChoosers and a Container to hold them
37        Container c = new Container();
38       
39        NumberChooser nc1 = new NumberChooser(10,40,1,31);
40        NumberChooser nc2 = new NumberChooser(35,40,1,12);
41        NumberChooser nc3 = new NumberChooser(60,40,2000,2099);
42       
43        // set current date
44        Time t = new Time();
45        nc1.setValue(t.day);
46        nc2.setValue(t.month);
47        nc3.setValue(t.year);   
48       
49        // add the NumberChoosers to the Container
50        c.add(nc1);
51        c.add(nc2);
52        c.add(nc3);
53       
54        // add the Container to the frame
55        this.add(c);
56       
57       
58        // nice borders
59        this.add(new Border("ComboBox", 0,0,128,25));
60        this.add(new Border("Current Date", 0,30,128,25));
61      }
62    
63    
64      public static void main(String[] args) {
65        new VoleComboNumberExample().show();
66      }
67    }
Listing 2: VoleComboNumberExample.java