📄 dialdemo1.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 + -