1 6 7 package org.jfree.experimental.chart.demo; 8 9 import java.awt.BasicStroke ; 10 import java.awt.BorderLayout ; 11 import java.awt.Color ; 12 import java.awt.Dimension ; 13 import java.awt.GradientPaint ; 14 import java.awt.Point ; 15 16 import javax.swing.JFrame ; 17 import javax.swing.JPanel ; 18 import javax.swing.JSlider ; 19 import javax.swing.event.ChangeEvent ; 20 import javax.swing.event.ChangeListener ; 21 22 import org.jfree.chart.ChartPanel; 23 import org.jfree.chart.JFreeChart; 24 import org.jfree.data.general.DefaultValueDataset; 25 import org.jfree.experimental.chart.plot.dial.DialBackground; 26 import org.jfree.experimental.chart.plot.dial.DialPlot; 27 import org.jfree.experimental.chart.plot.dial.DialPointer; 28 import org.jfree.experimental.chart.plot.dial.StandardDialFrame; 29 import org.jfree.experimental.chart.plot.dial.StandardDialScale; 30 import org.jfree.ui.GradientPaintTransformType; 31 import org.jfree.ui.StandardGradientPaintTransformer; 32 33 36 public class DialDemo3 extends JFrame implements ChangeListener { 37 38 39 JSlider slider; 40 41 42 DefaultValueDataset dataset; 43 44 49 public DialDemo3(String title) { 50 super(title); 51 52 this.dataset = new DefaultValueDataset(50); 53 DialPlot plot = new DialPlot(); 55 plot.setView(0.21, 0.0, 0.58, 0.30); 56 plot.setDataset(this.dataset); 57 58 StandardDialFrame dialFrame = new StandardDialFrame(60.0, 60.0); 59 dialFrame.setInnerRadius(0.60); 60 dialFrame.setOuterRadius(0.90); 61 dialFrame.setForegroundPaint(Color.darkGray); 62 dialFrame.setStroke(new BasicStroke (3.0f)); 63 plot.setDialFrame(dialFrame); 64 65 GradientPaint gp = new GradientPaint (new Point (), 66 new Color (255, 255, 255), new Point (), 67 new Color (240, 240, 240)); 68 DialBackground sdb = new DialBackground(gp); 69 sdb.setGradientPaintTransformer(new StandardGradientPaintTransformer( 70 GradientPaintTransformType.VERTICAL)); 71 plot.addLayer(sdb); 72 73 StandardDialScale scale = new StandardDialScale(0, 100, 115.0, -50.0); 74 scale.setTickRadius(0.88); 75 scale.setTickLabelOffset(0.07); 76 scale.setMajorTickIncrement(25.0); 77 scale.setTickLabelPaint(null); 78 plot.addScale(0, scale); 79 80 DialPointer needle = new DialPointer.Pin(); 81 needle.setRadius(0.82); 82 plot.addLayer(needle); 83 JFreeChart chart1 = new JFreeChart(plot); 84 chart1.setTitle("Dial Demo 3"); 85 ChartPanel cp1 = new ChartPanel(chart1); 86 87 cp1.setPreferredSize(new Dimension (400, 250)); 88 slider = new JSlider (0, 100); 89 slider.setMajorTickSpacing(10); 90 slider.setPaintLabels(true); 91 slider.addChangeListener(this); 92 JPanel content = new JPanel (new BorderLayout ()); 93 content.add(cp1); 94 content.add(slider, BorderLayout.SOUTH); 95 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 96 setContentPane(content); 97 98 } 99 100 106 public void stateChanged(ChangeEvent e) { 107 this.dataset.setValue(new Integer (slider.getValue())); 108 } 109 110 115 public static void main(String [] args) { 116 117 DialDemo3 app = new DialDemo3("JFreeChart - Demo Dial 3"); 118 app.pack(); 119 app.setVisible(true); 120 121 } 122 } 123 | Popular Tags |