BarMeter

Das BarMeter kann entweder horizontal oder vertikal dargestellt werden und unterstützt zwei verschiedene Texturen (gefüllt oder liniert).

Neben den Standardmethoden wie setValue oder setBounds bietet das BarMeter noch einige spezielle Konfigurationsoptionen an. Diese sind in Tabelle 3 aufgeführt.

MethodeBeschreibung
BarMeter(int x, int y, int width, int height, int min, int max, boolean orientation, int style)Erzeugt ein neues BarMeter mit den angegebenen Ausmaßen. Die Werte min und max beschreiben den Wertebereich der Messwertanzeige. Der Wert von style legt den Füllstil fest. Mit Hilfe des Parameters orientation kann konfiguriert werden, ob das BarMeter liegend (ORIENTATION_HORIZONTAL) oder stehend (ORIENTATION_VERTICAL) dargestellt werden soll.
setCaption(String captionMin, String captionMax)Gibt Strings zur Beschriftung des BarMeters an.
setNumericDisplay(int digits, int decimals, String unit)Mittels dieser Methode kann die alphanumerische Messwertanzeige konfiguriert werden. Der Parameter digits definiert die Anzahl der anzuzeigenden Stellen. Der Parameter decimals bestimmt, wieviele Nachkommanstellen angezeigt werden sollen (diese sind im Wert von digits enthalten). Beispiel: digits=4 und decimals=3 ergibt die Zahlendarstellung: x,xxx. Im Fall decimals=0 wird kein Komma eingefügt. Der String unit schließlich gibt die Einheit der Messwerte an (z.B. "V").
setValue(int value)Übergibt einen neuen Messwert an das BarMeter, welches daraufhin aktualisiert wird. Liegt der Wert von value außerhalb des Wertebereichs, so wird er entsprechend durch den minimal, bzw. maximal anzeigbaren Wert ersetzt.
Tabelle 3: Methoden der Klasse jcontrol.ui.vole.meter.BarMeter

Im Folgenden ist das Beispielprogramm VoleBarMeterExample abgedruckt. Wenn Sie das Programm aus der ZIP-Datei VoleBarMeterExample.zip in Ihre JControl/IDE laden und dann den Simulator starten, müsste sich ein Bild ähnlich Abbildung 3 ergeben.

Bild 3: Das VoleBarMeterExample

1    import jcontrol.lang.Math;
2    import jcontrol.lang.ThreadExt;
3    import jcontrol.ui.vole.Frame;
4    import jcontrol.ui.vole.meter.BarMeter;
5    
6    /**
7     * <p>This example demonstrates how to use the
8     * components BarMeter and Thermometer within
9     * the GUI framework JControl/Vole.</p>
10     *
11     * <p>(C) DOMOLOGIC Home Automation GmbH 2003-2005</p>
12     */
13    public class VoleBarMeterExample extends Frame {
14     
15      /**
16       * Draw two BarMeters and a Thermometer
17       */
18      public VoleBarMeterExample() {
19        // create a vertical BarMeter with solid fill and inscriptions
20        BarMeter bm1 = new BarMeter(5, 0, 30, 35, 0, 20,
21                                    BarMeter.ORIENTATION_VERTICAL,
22                                    BarMeter.FILL_SOLID);
23        bm1.setCaption("Min", "Max");
24        this.add(bm1);
25       
26        // create a horizontal BarMeter with line-style fill
27        BarMeter bm2 = new BarMeter(5, 40, 100, 20, 0, 100,
28                                    BarMeter.ORIENTATION_HORIZONTAL,
29                                    BarMeter.FILL_LINE);
30        bm2.setCaption("0", "20");
31        bm2.setNumericDisplay(5, 0, "%");
32        this.add(bm2);
33       
34        // make the frame visible
35        show();
36       
37        // generate random values
38        for (;;) {
39          bm1.setValue(Math.rnd(20));
40          bm2.setValue(Math.rnd(100));
41         
42          try { ThreadExt.sleep(1000); } catch (InterruptedException e) {}
43        }
44      }
45    
46      /**
47       * Start the example
48       */
49      public static void main(String[] args) {
50        new VoleBarMeterExample();
51      }
52    }
Listing 3: VoleBarMeterExample.java