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.

MethodeBeschreibung
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