⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timeseriesdemo1.java

📁 JFreeChar实例 --- 实时数据曲线显示
💻 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 + -