|
Diagram
Die Klasse Diagram aus dem Package jcontrol.ui.vole.graph ermöglicht die kontinuierliche grafische Darstellung eines Messwertverlaufs als 2D-Diagramm. Die Aktualisierungsgeschwindigkeit kann dabei vom Anwendungsprogramm frei bestimmt werden. Wertebereich, Skalierung und Beschriftung können mit Hilfe entsprechender, in Tabelle 1 aufgeführten Methoden angegeben werden.
|
Methode | Beschreibung |
Diagram(int x, int y, int width, int height, int min, int max, int resolution) | Erzeugt ein Diagram -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 Diagram eine Beschriftung hinzu. Die beiden übergebenen Strings werden je nach Wert des Parameters captionAlign (ALIGN_LEFT oder ALIGN_RIGHT ) am linken oder am rechten Rand des Diagramms angezeigt. |
setValue(int value) | Diese Methode übergibt einen neuen Messwert an das Diagram , welcher am rechten Rand eingefügt wird. Die bereits dargestellte Kurve wird gleichzeitig nach links geschoben. |
Tabelle 1: Methoden der Klasse jcontrol.ui.vole.graph.Diagram
Im Folgenden ist das Beispielprogramm VoleDiagramExample
aufgelistet, dessen Darstellung in Bild 1 dargestellt wird. Das Programm erstellt eine bildschirmfüllende Diagram
-Instanz, die in einer Endlosschleife mit zufälligen Messwerten versorgt wird. Laden Sie das Archiv VoleDiagramExample.zip herunter, um die Quellen zusammen mit einem gleichnamigen JControl/IDE-Projekt zu erhalten. Sie können den Simulator der JControl/IDE verwenden, um das VoleDiagramExample
selbst auszuprobieren.
Bild 1: Das VoleDiagramExample
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.Diagram; |
6 | |
7 | /** |
8 | * <p>This example demonstrates how to use the |
9 | * component Diagram within the GUI framework |
10 | * JControl/Vole.</p> |
11 | * |
12 | * <p>(C) DOMOLOGIC Home Automation GmbH 2003-2005</p> |
13 | */ |
14 | public class VoleDiagramExample extends Frame { |
15 | |
16 | /** |
17 | * Create a Diagram and fill it with some random values. |
18 | */ |
19 | public VoleDiagramExample() { |
20 | |
21 | // create the Diagram |
22 | Diagram dia = new Diagram(0, 10, 128, 40, 0, 20, 30); |
23 | dia.setCaption("0", "20", Diagram.ALIGN_LEFT); |
24 | add(dia); |
25 | |
26 | // add a Label |
27 | add(new Label("Diagram", 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 | dia.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 VoleDiagramExample |
44 | */ |
45 | public static void main(String[] args) { |
46 | new VoleDiagramExample(); |
47 | } |
48 | } |
Listing 1: VoleDiagramExample.java