MultiImageMenu
Das MultiImageMenu
arbeitet wie das BigImageMenu mit Grafiken als Menüpunkte. Allerdings werden die Piktogramme beim MultiImageMenu
horizontal nebeneinander angeordnet, so dass mehrere Menüpunkte gleichzeitig angezeigt werden können. Auch das MultiImageMenu
unterstützt Scrolling, wenn mehr Menüpunkte vorhanden sind, als gleichzeitig dargestellt werden können. Der momentan markierte Menüpunkt wird invertiert dargestellt. Die gewünschte Anzahl der parallel dargestellten Menüpunkte wird im Konstruktor übergeben. Der verfügbare Platz für die darzustellenden Piktogramme wird dann berechnet und diese werden abgeschnitten, wenn ihre Größe die berechnete übersteigt. Für ein gefälliges Erscheinungsbild ist es empfehlenswert, alle Grafiken gleich groß zu gestalten.
Das folgende Quelltextbeispiel zeigt den Umgang mit dem MultiImageMenu
. Wie auch bei allen anderen Menüs ist nur sehr wenig Quelltext notwendig, um eine grafisch ansprechende Lösung zu erzielen. Bild 5 zeigt das MultiImageMenu
in Aktion. Die Datei ist neben allen anderen Beispielen dieses Tutorials in dem herunterladbaren ZIP-Archiv VoleMultiImageMenuExample.zip enthalten. Starten Sie Ihre JControl/IDE und probieren Sie es aus!
Bild 5: Das VoleMultiImageMenuExample
1 | import jcontrol.ui.vole.Frame; |
2 | import jcontrol.ui.vole.menu.MultiImageMenu; |
3 | |
4 | /** |
5 | * <p>This example demonstrates how to use the |
6 | * component MultiImageMenu within the GUI framework |
7 | * JControl/Vole.</p> |
8 | * |
9 | * <p>(C) DOMOLOGIC Home Automation GmbH 2003-2005</p> |
10 | */ |
11 | public class VoleMultiImageMenuExample extends Frame { |
12 | |
13 | /** |
14 | * Create and show a BigImageMenu |
15 | */ |
16 | public VoleMultiImageMenuExample() { |
17 | |
18 | // create a big BigImageMenu |
19 | MultiImageMenu menu = new MultiImageMenu(0, 10, 128, 38, 6); |
20 | |
21 | // add some menu items |
22 | menu.addMenuItem("menuimage1.jcif"); |
23 | menu.addMenuItem("menuimage2.jcif"); |
24 | menu.addMenuItem("menuimage3.jcif"); |
25 | menu.addMenuItem("menuimage4.jcif"); |
26 | menu.addMenuItem("menuimage5.jcif"); |
27 | menu.addMenuItem("menuimage6.jcif"); |
28 | menu.addMenuItem("menuimage7.jcif"); |
29 | menu.addMenuItem("menuimage8.jcif"); |
30 | menu.addMenuItem("menuimage9.jcif"); |
31 | |
32 | // show the menu |
33 | setMenu(menu); |
34 | show(); |
35 | } |
36 | |
37 | /** |
38 | * Instantiate the VoleBigImageMenuExample |
39 | */ |
40 | public static void main(String[] args) { |
41 | new VoleMultiImageMenuExample(); |
42 | } |
43 | } |
Listing 4: VoleMultiImageMenuExample.java