1 24 package info.monitorenter.gui.chart.demos; 25 26 import info.monitorenter.gui.chart.AAxis; 27 import info.monitorenter.gui.chart.Chart2D; 28 import info.monitorenter.gui.chart.ITrace2D; 29 import info.monitorenter.gui.chart.axis.AxisLinear; 30 import info.monitorenter.gui.chart.io.ADataCollector; 31 import info.monitorenter.gui.chart.io.RandomDataCollectorTimeStamped; 32 import info.monitorenter.gui.chart.labelformatters.LabelFormatterDate; 33 import info.monitorenter.gui.chart.labelformatters.LabelFormatterNumber; 34 import info.monitorenter.gui.chart.layout.ChartPanel; 35 import info.monitorenter.gui.chart.rangepolicies.RangePolicyMinimumViewport; 36 import info.monitorenter.gui.chart.traces.Trace2DAxisSwap; 37 import info.monitorenter.gui.chart.traces.Trace2DLtd; 38 import info.monitorenter.util.Range; 39 40 import java.awt.BasicStroke ; 41 import java.awt.Color ; 42 import java.awt.Stroke ; 43 import java.awt.event.WindowAdapter ; 44 import java.awt.event.WindowEvent ; 45 import java.text.DecimalFormat ; 46 import java.text.NumberFormat ; 47 import java.text.SimpleDateFormat ; 48 49 import javax.swing.JFrame ; 50 51 52 62 public final class AdvancedDynamicChart { 63 64 71 public static void main(final String [] args) { 72 Chart2D chart = new Chart2D(); 74 75 AAxis yAxis = new AxisLinear(); 78 79 AAxis xAxis = new AxisLinear(); 81 82 yAxis.setFormatter(new LabelFormatterDate(new SimpleDateFormat ("HH:mm:ss"))); 84 chart.setAxisY(yAxis); 85 86 NumberFormat format = new DecimalFormat ("#"); 89 format.setMaximumIntegerDigits(3); 94 xAxis.setFormatter(new LabelFormatterNumber(format)); 95 96 chart.setAxisX(xAxis); 97 xAxis.setRangePolicy(new RangePolicyMinimumViewport(new Range(-10, +10))); 101 104 ITrace2D trace = new Trace2DLtd(20); 105 trace.setColor(Color.RED); 106 107 Stroke stroke = new BasicStroke (1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 10.0f, 109 new float[]{15f, 10f }, 5f); 111 trace.setStroke(stroke); 112 113 chart.addTrace(trace); 115 116 JFrame frame = new JFrame ("AdvancedDynamicChart"); 119 frame.getContentPane().add(new ChartPanel(chart)); 121 frame.setSize(400, 300); 122 frame.addWindowListener(new WindowAdapter () { 124 public void windowClosing(final WindowEvent e) { 125 System.exit(0); 126 } 127 }); 128 frame.setVisible(true); 129 ADataCollector collector = new RandomDataCollectorTimeStamped( 132 new Trace2DAxisSwap(trace), 500); 133 collector.start(); 134 } 135 136 137 private AdvancedDynamicChart() { 138 super(); 139 } 140 } 141 | Popular Tags |