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:
Methode | Beschreibung |
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:
Methode | Beschreibung |
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