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