KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfree > experimental > chart > demo > DialDemo3


1 /* --------------
2  * DialDemo3.java
3  * --------------
4  * (C) Copyright 2006, by Object Refinery Limited.
5  */

6
7 package org.jfree.experimental.chart.demo;
8
9 import java.awt.BasicStroke JavaDoc;
10 import java.awt.BorderLayout JavaDoc;
11 import java.awt.Color JavaDoc;
12 import java.awt.Dimension JavaDoc;
13 import java.awt.GradientPaint JavaDoc;
14 import java.awt.Point JavaDoc;
15
16 import javax.swing.JFrame JavaDoc;
17 import javax.swing.JPanel JavaDoc;
18 import javax.swing.JSlider JavaDoc;
19 import javax.swing.event.ChangeEvent JavaDoc;
20 import javax.swing.event.ChangeListener JavaDoc;
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 /**
34  * A sample application showing the use of a {@link DialPlot}.
35  */

36 public class DialDemo3 extends JFrame JavaDoc implements ChangeListener JavaDoc {
37     
38     /** A slider to update the dataset value. */
39     JSlider JavaDoc slider;
40     
41     /** The dataset. */
42     DefaultValueDataset dataset;
43     
44     /**
45      * Creates a new instance.
46      *
47      * @param title the frame title.
48      */

49     public DialDemo3(String JavaDoc title) {
50         super(title);
51         
52         this.dataset = new DefaultValueDataset(50);
53         // get data for diagrams
54
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 JavaDoc(3.0f));
63         plot.setDialFrame(dialFrame);
64         
65         GradientPaint JavaDoc gp = new GradientPaint JavaDoc(new Point JavaDoc(),
66                 new Color JavaDoc(255, 255, 255), new Point JavaDoc(),
67                 new Color JavaDoc(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 JavaDoc(400, 250));
88         slider = new JSlider JavaDoc(0, 100);
89         slider.setMajorTickSpacing(10);
90         slider.setPaintLabels(true);
91         slider.addChangeListener(this);
92         JPanel JavaDoc content = new JPanel JavaDoc(new BorderLayout JavaDoc());
93         content.add(cp1);
94         content.add(slider, BorderLayout.SOUTH);
95         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
96         setContentPane(content);
97
98     }
99     
100     /**
101      * Handle a change in the slider by updating the dataset value. This
102      * automatically triggers a chart repaint.
103      *
104      * @param e the event.
105      */

106     public void stateChanged(ChangeEvent JavaDoc e) {
107         this.dataset.setValue(new Integer JavaDoc(slider.getValue()));
108     }
109
110     /**
111      * Starting point for the demo application.
112      *
113      * @param args ignored.
114      */

115     public static void main(String JavaDoc[] args) {
116
117         DialDemo3 app = new DialDemo3("JFreeChart - Demo Dial 3");
118         app.pack();
119         app.setVisible(true);
120
121     }
122 }
123
Popular Tags