📄 timeseriesdemo1.java
字号:
package com.tianze.rtu;
/**
* =============================================================
* JFreeChart开发:利用JFreeChart开发实时曲线
* =============================================================
* Description:该例子演示了单条曲线的简单使用方法
* Original Author:李克 QQ:304181052 EMAIL:xju_like@126.com created by 2009-05-6
*
* Changes:
* -------------------------------------------------------------
* 2009-05-06 增加线程调用 by Like
* 2009-05-06 界面调整 by Like
* -------------------------------------------------------------
*/
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.io.PrintStream;
import org.jfree.chart.*;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.*;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.*;
@SuppressWarnings( { "unused", "serial" })
public class TimeSeriesDemo1 extends JFrame implements Runnable, ActionListener {
// 时序图数据集,申明实时曲线对象
private TimeSeries timeseries;
// Value坐标轴初始值
private double lastValue;
@SuppressWarnings("unchecked")
static Class class$org$jfree$data$time$Millisecond;
static Thread thread1;
public static void main(String[] args) {
TimeSeriesDemo1 TimeSeriesDemo1 = new TimeSeriesDemo1();
TimeSeriesDemo1.pack();
RefineryUtilities.centerFrameOnScreen(TimeSeriesDemo1);
TimeSeriesDemo1.setVisible(true);
startThread();
}
public void run() {
while (true) {
try {
// 根据实际需要在此处加入需要执行的代码
double d = 0.9D + 0.2D * Math.random();
lastValue = lastValue * d;
Millisecond millisecond = new Millisecond();
System.out.println("Now=" + millisecond.toString());
timeseries.add(millisecond, lastValue);
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
}
public static void startThread() {
thread1.start();
}
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("EXIT")) {
thread1.destroy();
System.exit(0);
}
}
@SuppressWarnings("deprecation")
public TimeSeriesDemo1() {
// super(new BorderLayout());
thread1 = new Thread(this);
lastValue = 100D;
// 创建时序图对象
timeseries = new TimeSeries(
"Random Data",
TimeSeriesDemo1.class$org$jfree$data$time$Millisecond != null ? TimeSeriesDemo1.class$org$jfree$data$time$Millisecond
: (TimeSeriesDemo1.class$org$jfree$data$time$Millisecond = TimeSeriesDemo1
.getClass("org.jfree.data.time.Millisecond")));
TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timeseries);
// 创建图表面板
ChartPanel chartpanel = new ChartPanel(
createChart(timeseriescollection));
chartpanel.setPreferredSize(new Dimension(600, 350));
JPanel jpanel = new JPanel();
jpanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));// 边距为4
JButton jbutton = new JButton("退出");
jbutton.setActionCommand("EXIT");
jbutton.addActionListener(this);
jpanel.add(jbutton);
getContentPane().add(chartpanel);
getContentPane().add(jpanel, "South");
}
private JFreeChart createChart(XYDataset xydataset) {
JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("套压实时曲线",
"Time", "Value", xydataset, true, true, false);
XYPlot xyplot = jfreechart.getXYPlot();
// 纵坐标设定
ValueAxis valueaxis = xyplot.getDomainAxis();
valueaxis.setAutoRange(true);
valueaxis.setFixedAutoRange(60000D);
valueaxis = xyplot.getRangeAxis();
valueaxis.setRange(0.0D, 200D);
ChartPanel chartpanel = new ChartPanel(jfreechart);
chartpanel.setPopupMenu(null);
getContentPane().add(chartpanel, "Center");
return jfreechart;
}
@SuppressWarnings("unchecked")
static Class getClass(String s) {
Class cls = null;
try {
cls = Class.forName(s);
} catch (ClassNotFoundException cnfe) {
throw new NoClassDefFoundError(cnfe.getMessage());
}
return cls;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -