Histogram

Das Histogram stellt im Gegensatz zum Diagram ein Balkendiagramm anstelle einer Kurve dar, ist ansonsten aber sehr ähnlich aufgebaut. In der folgenden Tabelle 2 werden die wichtigsten Methoden der Klasse Histogram zusammengefasst.

MethodeBeschreibung
Histogram(int x, int y, int width, int height, int min, int max, int resolution)Erzeugt ein Histogram-Objekt an den Koordinaten (x, y) und mit dem übergebenen Wertebereich. Dieser Parameter resolution bestimmt, wieviele Messwerte das Diagramm gleichzeitig darstellen soll (Skalierung der Zeitachse).
setCaption(String captionMin, String captionMax, int captionAlign)Fügt dem Histogram eine Beschriftung hinzu. Die beiden übergebenen Strings werden je nach dem Wert des Parameters captionAlign (ALIGN_LEFT oder ALIGN_RIGHT) am linken oder am rechten Rand des Histogramms angezeigt.
setValue(int value)Übergibt einen neuen Messwert an das Histogram, worauf der Wert am linken Rand des Histogramms eingefügt wird. Die früheren Werte werden entsprechend nach rechts geschoben.
Tabelle 2: Methoden der Klasse jcontrol.ui.vole.graph.Histogram

Das Beispielprogramm VoleHistogramExample ist wie sein Pendant VoleDiagramExample aufgebaut und erzeugt ein Histogramm mit dem Wertebereich [0..20]. Eine Endlosschleife sorgt dafür, dass das Historgramm fortlaufend mit Zufallswerten aktualisiert wird. Nachfolgend ist der Quelltext des VoleHistogramExample aufgelistet und Bild 2 zeigt einen Screenshot des Beispielprogramms auf dem JControl/Sticker.

Bild 2: Das VoleHistogramExample

1    import jcontrol.lang.Math;
2    import jcontrol.lang.ThreadExt;
3    import jcontrol.ui.vole.Frame;
4    import jcontrol.ui.vole.Label;
5    import jcontrol.ui.vole.graph.Histogram;
6    
7    /**
8     * <p>This example demonstrates how to use the
9     * component Histogram within the GUI framework
10     * JControl/Vole.</p>
11     *
12     * <p>(C) DOMOLOGIC Home Automation GmbH 2003-2005</p>
13     */
14    public class VoleHistogramExample extends Frame {
15    
16      /**
17       * Create a Histogram and fill it with some random values.
18       */
19      public VoleHistogramExample() {
20    
21        // create the Histogram
22        Histogram his = new Histogram(0, 10, 128, 40, 0, 20, 30);
23        his.setCaption("0", "20", Histogram.ALIGN_LEFT);
24        add(his);
25       
26        // add a Label
27        add(new Label("Histogram", 0, 52, 128, 10, Label.ALIGN_CENTER));
28       
29        // show the frame
30        show();
31       
32        // generate random values and pass them to the Diagram
33        for (;;) {
34          his.setValue(Math.rnd(20));
35          // sleep
36          try {
37            ThreadExt.sleep(500);
38          } catch (InterruptedException e) {}
39        }   
40      }
41    
42      /**
43       * Create an instance of the VoleHistogramExample
44       */
45      public static void main(String[] args) {
46        new VoleHistogramExample();
47      }
48    }
Listing 2: VoleHistogramExample.java