This example shows how a simple charts can be created using the
JChart2D library. It creates two windows, one with a static chart, and one with a continuously updated chart. The static chart is saved to disk as a JPEG file when the program is terminated.
import java.awt.image.BufferedImage;
import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import info.monitorenter.gui.chart.Chart2D;
import info.monitorenter.gui.chart.IAxis;
import info.monitorenter.gui.chart.ITrace2D;
import info.monitorenter.gui.chart.io.ADataCollector;
import info.monitorenter.gui.chart.io.RandomDataCollectorTimeStamped;
import info.monitorenter.gui.chart.traces.Trace2DLtd;
import info.monitorenter.gui.chart.traces.Trace2DSimple;
public class JChart2DDemo {
private static Chart2D staticChart;
public static void main (String[] args) {
JChart2DDemo myDemo = new JChart2DDemo();
myDemo.staticDemo();
myDemo.dynamicDemo();
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
BufferedImage bi = staticChart.snapShot();
ImageIO.write(bi, "JPEG", new File("chart.jpg"));
} catch (Exception ex) {
System.err.println("couldn't write chart to file: "+ex.getMessage());
}
}
});
}
private void staticDemo() {
staticChart = new Chart2D();
ITrace2D trace = new Trace2DSimple();
trace.setColor(Color.RED);
trace.setName("Static Demo");
staticChart.setBackground(Color.WHITE);
staticChart.setForeground(Color.BLUE);
staticChart.setGridColor(Color.GREEN);
IAxis axisX = staticChart.getAxisX();
axisX.setPaintGrid(true);
IAxis axisY = staticChart.getAxisY();
axisY.setPaintGrid(true);
Random random = new Random();
for (int i=100; i>=0; i--) {
trace.addPoint(i, random.nextDouble()*10.0+i);
}
staticChart.addTrace(trace);
JFrame frame = new JFrame("MinimalStaticChart");
frame.getContentPane().add(staticChart);
frame.setSize(600, 400);
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing (WindowEvent e) {
System.exit(0);
}
}
);
frame.setVisible(true);
}
private void dynamicDemo() {
Chart2D chart = new Chart2D();
ITrace2D trace = new Trace2DLtd(200);
trace.setColor(Color.RED);
trace.setName("Dynamic Demo");
chart.addTrace(trace);
chart.setBackground(Color.LIGHT_GRAY);
chart.setForeground(Color.BLUE);
chart.setGridColor(Color.GREEN);
IAxis axisX = chart.getAxisX();
axisX.setPaintGrid(true);
IAxis axisY = chart.getAxisY();
axisY.setPaintGrid(true);
JFrame frame = new JFrame("MinimalDynamicChart");
frame.getContentPane().add(chart);
frame.setSize(600, 400);
frame.setLocation(200, 200);
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
frame.setVisible(true);
ADataCollector collector = new RandomDataCollectorTimeStamped(trace, 50);
collector.start();
}
}
OtherOpenSourceProjectsFaq CategoryCodeSamples CodeBarn