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

📄 dialdemo2.java

📁 java图形利器
💻 JAVA
字号:
/* -------------- * DialDemo2.java * -------------- * (C) Copyright 2006, by Object Refinery Limited. */package org.jfree.experimental.chart.demo;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.GradientPaint;import java.awt.GridLayout;import java.awt.Point;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.data.general.DefaultValueDataset;import org.jfree.experimental.chart.plot.dial.DialBackground;import org.jfree.experimental.chart.plot.dial.DialCap;import org.jfree.experimental.chart.plot.dial.DialPlot;import org.jfree.experimental.chart.plot.dial.DialPointer;import org.jfree.experimental.chart.plot.dial.DialTextAnnotation;import org.jfree.experimental.chart.plot.dial.DialValueIndicator;import org.jfree.experimental.chart.plot.dial.SimpleDialFrame;import org.jfree.experimental.chart.plot.dial.StandardDialScale;import org.jfree.ui.GradientPaintTransformType;import org.jfree.ui.StandardGradientPaintTransformer;/** * A sample application showing the use of a {@link DialPlot}. */public class DialDemo2 extends JFrame implements ChangeListener {        /** The first dataset. */    DefaultValueDataset dataset1;        /** The second dataset. */    DefaultValueDataset dataset2;        /** A slider to update the first dataset value. */    JSlider slider1;        /** A slider to update the second dataset value. */    JSlider slider2;        /**      * Creates a new instance.     *     * @param title  the frame title.     */    public DialDemo2(String title) {        super(title);                this.dataset1 = new DefaultValueDataset(10.0);        this.dataset2 = new DefaultValueDataset(50.0);                // get data for diagrams        DialPlot plot = new DialPlot();        plot.setView(0.0, 0.0, 1.0, 1.0);        plot.setDataset(0, this.dataset1);        plot.setDataset(1, this.dataset2);        SimpleDialFrame dialFrame = new SimpleDialFrame();        dialFrame.setBackgroundPaint(Color.lightGray);        dialFrame.setForegroundPaint(Color.darkGray);        plot.setDialFrame(dialFrame);                GradientPaint gp = new GradientPaint(new Point(),                 new Color(255, 255, 255), new Point(),                 new Color(170, 170, 220));        DialBackground db = new DialBackground(gp);        db.setGradientPaintTransformer(new StandardGradientPaintTransformer(                GradientPaintTransformType.VERTICAL));        plot.setBackground(db);                DialTextAnnotation annotation1 = new DialTextAnnotation("Temperature");        annotation1.setFont(new Font("Dialog", Font.BOLD, 14));        annotation1.setRadius(0.7);                plot.addLayer(annotation1);        DialValueIndicator dvi = new DialValueIndicator(0, "c");        dvi.setFont(new Font("Dialog", Font.PLAIN, 10));        dvi.setOutlinePaint(Color.darkGray);        dvi.setRadius(0.60);        dvi.setAngle(-103.0);        plot.addLayer(dvi);                DialValueIndicator dvi2 = new DialValueIndicator(1, "c");        dvi2.setFont(new Font("Dialog", Font.PLAIN, 10));        dvi2.setOutlinePaint(Color.red);        dvi2.setRadius(0.60);        dvi2.setAngle(-77.0);        plot.addLayer(dvi2);                StandardDialScale scale = new StandardDialScale(-40, 60, -120, -300);        scale.setTickRadius(0.88);        scale.setTickLabelOffset(0.15);        scale.setTickLabelFont(new Font("Dialog", Font.PLAIN, 14));        plot.addScale(0, scale);        StandardDialScale scale2 = new StandardDialScale(0, 100, -120, -300);        scale2.setTickRadius(0.50);        scale2.setTickLabelOffset(0.15);        scale2.setTickLabelFont(new Font("Dialog", Font.PLAIN, 10));        scale2.setMajorTickPaint(Color.red);        plot.addScale(1, scale2);        plot.mapDatasetToScale(1, 1);                DialPointer needle2 = new DialPointer.Pin(1);        needle2.setRadius(0.55);        plot.addLayer(needle2);        DialPointer needle = new DialPointer.Pointer(0);        plot.addLayer(needle);                DialCap cap = new DialCap();        cap.setRadius(0.10);        plot.setCap(cap);                JFreeChart chart1 = new JFreeChart(plot);        chart1.setTitle("Dial Demo 2");        ChartPanel cp1 = new ChartPanel(chart1);        cp1.setPreferredSize(new Dimension(400, 400));                JPanel sliderPanel = new JPanel(new GridLayout(2, 2));        sliderPanel.add(new JLabel("Outer Needle:"));        sliderPanel.add(new JLabel("Inner Needle:"));        this.slider1 = new JSlider(-40, 60);        this.slider1.setMajorTickSpacing(20);        this.slider1.setPaintTicks(true);        this.slider1.setPaintLabels(true);        this.slider1.addChangeListener(this);        sliderPanel.add(this.slider1);        sliderPanel.add(this.slider1);        this.slider2 = new JSlider(0, 100);        this.slider2.setMajorTickSpacing(20);        this.slider2.setPaintTicks(true);        this.slider2.setPaintLabels(true);        this.slider2.addChangeListener(this);        sliderPanel.add(this.slider2);        JPanel content = new JPanel(new BorderLayout());        content.add(cp1);        content.add(sliderPanel, BorderLayout.SOUTH);        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        setContentPane(content);    }        /**     * Handle a change in the slider by updating the dataset value.  This     * automatically triggers a chart repaint.     *      * @param e  the event.     */    public void stateChanged(ChangeEvent e) {        this.dataset1.setValue(new Integer(this.slider1.getValue()));        this.dataset2.setValue(new Integer(this.slider2.getValue()));    }    /**     * Starting point for the demo application.     *      * @param args  ignored.     */    public static void main(String[] args) {        DialDemo2 app = new DialDemo2("JFreeChart - Dial Demo 2");        app.pack();        app.setVisible(true);    }}

⌨️ 快捷键说明

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