📄 demo.java
字号:
package net.turbochen.graph.demo;
import net.turbochen.graph.*;
import net.turbochen.graph.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
/**
* @author Turbo Chen
*/
public class Demo implements WindowListener
{
double[] y1 = new double[]{
12.5,14.1,+13.2,11.4,13.25,12.32
};
double[] y2 = new double[]{
13.2,12.7,14.5,12.3,11.5,13.2
};
public void LineChart()
{
try
{
DataSeries ds = new DefaultDataSeries(
Primary2ObjectUtil.Doulbe2Object(y1));
DataSeries ds2 = new DefaultDataSeries(
Primary2ObjectUtil.Doulbe2Object(y2));
XAxis xaxis = new XAxis(new XScale(0,y1.length+1),ds.size());
YAxis yaxis = new YAxis(new YScale(10,15),4);
xaxis.setDrawGrid(true);
yaxis.setDrawGrid(true);
LinePlot plot = new LinePlot(ds,xaxis,yaxis);
//plot.addDataSeries(ds2);
Chart chart = new Chart(xaxis,yaxis,plot);
JFrame frame = new JFrame("Line Plot Demo");
frame.setSize(400,300);
frame.getContentPane().add(chart);
frame.setVisible(true);
}
catch (InvalidDataException e)
{
e.printStackTrace();
}
}
public void BarChart()
{
try
{
DataSeries ds = new DefaultDataSeries(
Primary2ObjectUtil.Doulbe2Object(y1));
DataSeries ds2 = new DefaultDataSeries(
Primary2ObjectUtil.Doulbe2Object(y2));
XAxis xaxis = new XAxis(new XScale(0,y1.length+1),ds.size());
YAxis yaxis = new YAxis(new YScale(10,15),4);
xaxis.setDrawGrid(false);
yaxis.setDrawGrid(true);
BarPlot plot = new BarPlot(ds,xaxis,yaxis);
//plot.addDataSeries(ds2);
Chart chart = new Chart(xaxis,yaxis,plot);
JFrame frame = new JFrame("Bar Plot Demo");
frame.setSize(400,300);
frame.getContentPane().add(chart);
frame.setVisible(true);
}
catch (InvalidDataException e)
{
e.printStackTrace();
}
}
public void MultipleChart()
{
try
{
DataSeries ds = new DefaultDataSeries(
Primary2ObjectUtil.Doulbe2Object(y1));
XAxis xaxis = new XAxis(new XScale(0,y1.length+1),ds.size());
YAxis yaxis = new YAxis(new YScale(10,15),4);
xaxis.setDrawGrid(true);
yaxis.setDrawGrid(true);
LinePlot linePlot = new LinePlot(ds,xaxis,yaxis);
BarPlot barPlot = new BarPlot(ds,xaxis,yaxis);
Chart chart = new Chart(xaxis,yaxis,barPlot);
chart.addPlot(linePlot);
JFrame frame = new JFrame("Multiple Plot Demo");
frame.setSize(400,300);
frame.getContentPane().add(chart);
frame.setVisible(true);
}
catch (InvalidDataException e)
{
e.printStackTrace();
}
}
public void RealtimeChart()
{
try
{
final RealtimeDataSeries ds = new RealtimeDataSeries(
Primary2ObjectUtil.Doulbe2Object(y1));
final XAxis xaxis = new XAxis(new XScale(0,y1.length+1),ds.size());
final YAxis yaxis = new YAxis(new YScale(10,15),4);
xaxis.setDrawGrid(true);
yaxis.setDrawGrid(true);
LinePlot plot = new LinePlot(ds,xaxis,yaxis);
RealtimeChart chart = new RealtimeChart(xaxis,yaxis,plot);
ds.registerDataChangeListener(chart);
JFrame frame = new JFrame("Realtime Chart Demo");
frame.setSize(400,300);
frame.getContentPane().add(chart);
frame.setVisible(true);
Runnable run = new Runnable()
{
public void run()
{
while (true)
{
try
{
Thread.sleep(1500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
double data = 10+Math.random()*5;
ds.addDataY(new Double(data));
xaxis.getScale().setMin(xaxis.getScale().getMin()+1);
xaxis.getScale().setMax(((Double)ds.getXData(ds.size()-1)).doubleValue()+1);
}
}
};
Thread t = new Thread(run);
t.start();
}
catch (InvalidDataException e)
{
e.printStackTrace();
}
}
public static void main(String[] srgs)
{
Demo demo = new Demo();
JFrame frame = new JFrame("Demo Chart");
frame.addWindowListener(demo);
frame.getContentPane().setLayout(new GridLayout(2,2));
JButton lineChartButton = new JButton("Line Chart");
lineChartButton.addActionListener(demo.new ButtonActionListener(demo));
lineChartButton.setActionCommand("Line Chart");
frame.getContentPane().add(lineChartButton);
JButton barChartButton = new JButton("Bar Chart");
barChartButton.addActionListener(demo.new ButtonActionListener(demo));
barChartButton.setActionCommand("Bar Chart");
frame.getContentPane().add(barChartButton);
JButton multipleChartButton = new JButton("Multiple Chart");
multipleChartButton.addActionListener(demo.new ButtonActionListener(demo));
multipleChartButton.setActionCommand("Multiple Chart");
frame.getContentPane().add(multipleChartButton);
JButton realtimeChartButton = new JButton("Realtime Chart");
realtimeChartButton.addActionListener(demo.new ButtonActionListener(demo));
realtimeChartButton.setActionCommand("Realtime Chart");
frame.getContentPane().add(realtimeChartButton);
frame.setSize(400,300);
frame.setVisible(true);
}
public void windowActivated(WindowEvent e){}
public void windowClosed(WindowEvent e)
{
}
public void windowClosing(WindowEvent e){System.exit(0);}
public void windowDeactivated(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}
class ButtonActionListener implements ActionListener
{
Demo demo;
public ButtonActionListener(Demo demo)
{
this.demo = demo;
}
public void actionPerformed(ActionEvent event)
{
if ( event.getActionCommand().equals("Line Chart"))
demo.LineChart();
else if ( event.getActionCommand().equals("Bar Chart"))
demo.BarChart();
else if ( event.getActionCommand().equals("Multiple Chart"))
demo.MultipleChart();
else
demo.RealtimeChart();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -