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