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

📄 dialdemo1.java

📁 实时数据显示仪表盘
💻 JAVA
字号:
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 

package com.tianze.rtu;

import java.awt.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.dial.*;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.data.general.ValueDataset;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.StandardGradientPaintTransformer;

public class DialDemo1 extends JFrame {
	static class DemoPanel extends JPanel implements ChangeListener {

		public static JFreeChart createStandardDialChart(String s, String s1,
				ValueDataset valuedataset, double d, double d1, double d2, int i) {
			DialPlot dialplot = new DialPlot();
			dialplot.setDataset(valuedataset);
			dialplot.setDialFrame(new StandardDialFrame());
			dialplot.setBackground(new DialBackground());
			DialTextAnnotation dialtextannotation = new DialTextAnnotation(s1);
			dialtextannotation.setFont(new Font("Dialog", 1, 14));   //text 的大小
			dialtextannotation.setRadius(0.69999999999999996D);// 设置半径
			dialplot.addLayer(dialtextannotation);
			DialValueIndicator dialvalueindicator = new DialValueIndicator(0);
			dialplot.addLayer(dialvalueindicator);
			StandardDialScale standarddialscale = new StandardDialScale(d, d1,
					-120D, -300D, 1D, 4);  //扇形幅度
			standarddialscale.setMajorTickIncrement(d2);
			standarddialscale.setMinorTickCount(i);
			standarddialscale.setTickRadius(0.88D);        //刻度的位置
			standarddialscale.setTickLabelOffset(0.14999999999999999D);    //刻度数字的位置
			standarddialscale.setTickLabelFont(new Font("Dialog", 1, 14));  //刻度数值的大小及样式
			dialplot.addScale(0, standarddialscale);
			dialplot
					.addPointer(new org.jfree.chart.plot.dial.DialPointer.Pin());
			DialCap dialcap = new DialCap();
			dialplot.setCap(dialcap);
			return new JFreeChart(s, dialplot);
		}

		public void stateChanged(ChangeEvent changeevent) {
			dataset.setValue(slider.getValue());
			
		}

		JSlider slider;
		DefaultValueDataset dataset;
		JFreeChart jfreechart;
		
		public DemoPanel() {
			super(new BorderLayout());
			dataset = new DefaultValueDataset(13D);  //设置初始值(lable中的数据)
			jfreechart = createStandardDialChart("套压实时数据显示",
					"套压实时数据", dataset, 0D, 26D, 1D, 3);    //dataset, 初始值,最大值,标注的跨度,段数
			DialPlot dialplot = (DialPlot) jfreechart.getPlot();
			StandardDialRange standarddialrange = new StandardDialRange(24D,
					26D, Color.red);  //红色报警线
			StandardDialRange standarddialrange5 = new StandardDialRange(0D,
					2D, Color.red);  //红色报警线
			standarddialrange.setInnerRadius(0.52000000000000002D);
			standarddialrange.setOuterRadius(0.55000000000000004D);
			dialplot.addLayer(standarddialrange);
			standarddialrange5.setInnerRadius(0.52000000000000002D);
			standarddialrange5.setOuterRadius(0.55000000000000004D);
			dialplot.addLayer(standarddialrange5);
			StandardDialRange standarddialrange1 = new StandardDialRange(18D,
					24D, Color.orange);  //黄色报警线
			StandardDialRange standarddialrange4 = new StandardDialRange(2D,
					8D, Color.orange);  //黄色报警线
			standarddialrange4.setInnerRadius(0.52000000000000002D);
			standarddialrange4.setOuterRadius(0.55000000000000004D);
			dialplot.addLayer(standarddialrange4);
			standarddialrange1.setInnerRadius(0.52000000000000002D);
			standarddialrange1.setOuterRadius(0.55000000000000004D);
			dialplot.addLayer(standarddialrange1);
			StandardDialRange standarddialrange2 = new StandardDialRange(8D,
					18D, Color.green);   //绿色报警线
			standarddialrange2.setInnerRadius(0.52000000000000002D);  //报警线形状
			standarddialrange2.setOuterRadius(0.55000000000000004D);  //报警线形状
			dialplot.addLayer(standarddialrange2);
			GradientPaint gradientpaint = new GradientPaint(new Point(),
					new Color(255, 255, 255), new Point(), new Color(170, 170, 220));   //表盘的颜色
			
			DialBackground dialbackground = new DialBackground(gradientpaint);
			dialbackground
					.setGradientPaintTransformer(new StandardGradientPaintTransformer(
							GradientPaintTransformType.VERTICAL));
			dialplot.setBackground(dialbackground);
			dialplot.removePointer(0);
			org.jfree.chart.plot.dial.DialPointer.Pointer pointer = new org.jfree.chart.plot.dial.DialPointer.Pointer();
			pointer.setFillPaint(Color.yellow);  //指针的颜色
			dialplot.addPointer(pointer);
			ChartPanel chartpanel = new ChartPanel(jfreechart);
			chartpanel.setPreferredSize(new Dimension(500, 500));  //表盘的大小为长,宽
			slider = new JSlider(0, 26);  //数值的范围是
			slider.setMajorTickSpacing(1);  //显示长度为的滚动条
			slider.setPaintLabels(true);
			slider.addChangeListener(this);
			add(chartpanel);
			add(slider, "South");
		}
	}

	public DialDemo1(String s) {
		super(s);
		setDefaultCloseOperation(3);
		setContentPane(createDemoPanel());
	}

	public static JPanel createDemoPanel() {
		return new DemoPanel();
	}

	public static void main(String[] args) {
		DialDemo1 dialdemo1 = new DialDemo1("套压实时数据");
		dialdemo1.pack();
		dialdemo1.setVisible(true);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -