SWT中使用JFreeChart(无需SWT_AWT)
好像从1.03开始Jfc就已经提供了在SWT中使用JFC的专用包和类,只是没有人写这些东西而已~今天我就贴一些Demo,以后再也不用SWT_AWT了~
更重要的是SWT_AWT主要是将AWT嵌入SWT中,而ChartComposite则是将chart对象直接转换为SWT中的东东,连右键都是SWT的了~
声明:
永久性关闭本Blog,内容已经迁往 www.lign.name 全新的空间,全新的内容,敬请关注!
1![](//pubimage.360doc.com/wz/default.gif)
/**//* ===========================================================
2
* JFreeChart : a free chart library for the Java(tm) platform
3
* ===========================================================
4
*
5
* (C) Copyright 2000-2007, by Object Refinery Limited and Contributors.
6
*
7
* Project Info: http://www.jfree.org/jfreechart/index.html
8
*
9
* This library is free software; you can redistribute it and/or modify it
10
* under the terms of the GNU Lesser General Public License as published by
11
* the Free Software Foundation; either version 2.1 of the License, or
12
* (at your option) any later version.
13
*
14
* This library is distributed in the hope that it will be useful, but
15
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17
* License for more details.
18
*
19
* You should have received a copy of the GNU Lesser General Public
20
* License along with this library; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22
* USA.
23
*
24
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25
* in the United States and other countries.]
26
*
27
* ---------------------
28
* SWTBarChartDemo1.java
29
* ---------------------
30
* (C) Copyright 2006, 2007, by Object Refinery Limited and Contributors.
31
*
32
* Original Author: David Gilbert (for Object Refinery Limited);
33
* Contributor(s):
34
*
35
* Changes
36
* -------
37
* 23-Aug-2006 : New class (DG);
38
*
39
*/
40![](//pubimage.360doc.com/wz/default.gif)
41
package org.jfree.experimental.chart.swt.demo;
42![](//pubimage.360doc.com/wz/default.gif)
43
import java.awt.Color;
44![](//pubimage.360doc.com/wz/default.gif)
45
import org.eclipse.swt.SWT;
46
import org.eclipse.swt.layout.FillLayout;
47
import org.eclipse.swt.widgets.Display;
48
import org.eclipse.swt.widgets.Shell;
49
import org.jfree.chart.ChartFactory;
50
import org.jfree.chart.JFreeChart;
51
import org.jfree.chart.axis.CategoryAxis;
52
import org.jfree.chart.axis.CategoryLabelPositions;
53
import org.jfree.chart.axis.NumberAxis;
54
import org.jfree.chart.plot.CategoryPlot;
55
import org.jfree.chart.plot.PlotOrientation;
56
import org.jfree.chart.renderer.category.BarRenderer;
57
import org.jfree.data.category.CategoryDataset;
58
import org.jfree.data.category.DefaultCategoryDataset;
59
import org.jfree.experimental.chart.swt.ChartComposite;
60![](//pubimage.360doc.com/wz/default.gif)
61![](//pubimage.360doc.com/wz/default.gif)
/** *//**
62
* An SWT demo.
63
*/
64![](//pubimage.360doc.com/wz/default.gif)
public class SWTBarChartDemo1
{
65
66![](//pubimage.360doc.com/wz/default.gif)
/** *//**
67
* Returns a sample dataset.
68
*
69
* @return The dataset.
70
*/
71![](//pubimage.360doc.com/wz/default.gif)
private static CategoryDataset createDataset()
{
72
73
// row keys![](//pubimage.360doc.com/wz/default.gif)
74
String series1 = "First";
75
String series2 = "Second";
76
String series3 = "Third";
77![](//pubimage.360doc.com/wz/default.gif)
78
// column keys![](//pubimage.360doc.com/wz/default.gif)
79
String category1 = "Category 1";
80
String category2 = "Category 2";
81
String category3 = "Category 3";
82
String category4 = "Category 4";
83
String category5 = "Category 5";
84![](//pubimage.360doc.com/wz/default.gif)
85
// create the dataset![](//pubimage.360doc.com/wz/default.gif)
86
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
87![](//pubimage.360doc.com/wz/default.gif)
88
dataset.addValue(1.0, series1, category1);
89
dataset.addValue(4.0, series1, category2);
90
dataset.addValue(3.0, series1, category3);
91
dataset.addValue(5.0, series1, category4);
92
dataset.addValue(5.0, series1, category5);
93![](//pubimage.360doc.com/wz/default.gif)
94
dataset.addValue(5.0, series2, category1);
95
dataset.addValue(7.0, series2, category2);
96
dataset.addValue(6.0, series2, category3);
97
dataset.addValue(8.0, series2, category4);
98
dataset.addValue(4.0, series2, category5);
99![](//pubimage.360doc.com/wz/default.gif)
100
dataset.addValue(4.0, series3, category1);
101
dataset.addValue(3.0, series3, category2);
102
dataset.addValue(2.0, series3, category3);
103
dataset.addValue(3.0, series3, category4);
104
dataset.addValue(6.0, series3, category5);
105
106
return dataset;
107
108
}
109
110![](//pubimage.360doc.com/wz/default.gif)
/** *//**
111
* Creates a sample chart.
112
*
113
* @param dataset the dataset.
114
*
115
* @return The chart.
116
*/
117![](//pubimage.360doc.com/wz/default.gif)
private static JFreeChart createChart(CategoryDataset dataset)
{
118
119
// create the chart![](//pubimage.360doc.com/wz/default.gif)
120
JFreeChart chart = ChartFactory.createBarChart(
121
"Bar Chart Demo", // chart title
122
"Category", // domain axis label
123
"Value", // range axis label
124
dataset, // data
125
PlotOrientation.VERTICAL, // orientation
126
true, // include legend
127
true, // tooltips?
128
false // URLs?
129
);
130![](//pubimage.360doc.com/wz/default.gif)
131
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART![](//pubimage.360doc.com/wz/default.gif)
132![](//pubimage.360doc.com/wz/default.gif)
133
// set the background color for the chart![](//pubimage.360doc.com/wz/default.gif)
134
chart.setBackgroundPaint(Color.white);
135![](//pubimage.360doc.com/wz/default.gif)
136
// get a reference to the plot for further customisation![](//pubimage.360doc.com/wz/default.gif)
137
CategoryPlot plot = (CategoryPlot) chart.getPlot();
138
plot.setBackgroundPaint(Color.lightGray);
139
plot.setDomainGridlinePaint(Color.white);
140
plot.setDomainGridlinesVisible(true);
141
plot.setRangeGridlinePaint(Color.white);
142![](//pubimage.360doc.com/wz/default.gif)
143
// set the range axis to display integers only![](//pubimage.360doc.com/wz/default.gif)
144
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
145
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
146![](//pubimage.360doc.com/wz/default.gif)
147
// disable bar outlines![](//pubimage.360doc.com/wz/default.gif)
148
BarRenderer renderer = (BarRenderer) plot.getRenderer();
149
renderer.setDrawBarOutline(false);
150![](//pubimage.360doc.com/wz/default.gif)
151
CategoryAxis domainAxis = plot.getDomainAxis();
152
domainAxis.setCategoryLabelPositions(
153
CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)
154
);
155
// OPTIONAL CUSTOMISATION COMPLETED.
156
157
return chart;
158
159
}
160
161![](//pubimage.360doc.com/wz/default.gif)
/** *//**
162
* Starting point for the demonstration application.
163
*
164
* @param args ignored.
165
*/
166
public static void main( String[] args )
167![](//pubimage.360doc.com/wz/default.gif)
{
168
JFreeChart chart = createChart(createDataset());
169
Display display = new Display();
170
Shell shell = new Shell(display);
171
shell.setSize(600, 300);
172
shell.setLayout(new FillLayout());
173
shell.setText("Test for jfreechart running with SWT");
174
final ChartComposite frame = new ChartComposite(shell, SWT.NONE, chart,
175
true);
176
frame.pack();
177
shell.open();
178![](//pubimage.360doc.com/wz/default.gif)
while (!shell.isDisposed())
{
179
if (!display.readAndDispatch())
180
display.sleep();
181
}
182
}
183![](//pubimage.360doc.com/wz/default.gif)
184
}
185![](//pubimage.360doc.com/wz/default.gif)
186![](//pubimage.360doc.com/wz/default.gif)
187![](//pubimage.360doc.com/wz/default.gif)
这个是JFC里面自带的一个例子,例子里面使用了一个ChartComposite来放置chart对象~这样对使用者来说更加方便了,其实JFC的SWT包下还有好几个很好用的类,只是没有文档而已~![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
2
![](http://pubimage.360doc.com/wz/default.gif)
3
![](http://pubimage.360doc.com/wz/default.gif)
4
![](http://pubimage.360doc.com/wz/default.gif)
5
![](http://pubimage.360doc.com/wz/default.gif)
6
![](http://pubimage.360doc.com/wz/default.gif)
7
![](http://pubimage.360doc.com/wz/default.gif)
8
![](http://pubimage.360doc.com/wz/default.gif)
9
![](http://pubimage.360doc.com/wz/default.gif)
10
![](http://pubimage.360doc.com/wz/default.gif)
11
![](http://pubimage.360doc.com/wz/default.gif)
12
![](http://pubimage.360doc.com/wz/default.gif)
13
![](http://pubimage.360doc.com/wz/default.gif)
14
![](http://pubimage.360doc.com/wz/default.gif)
15
![](http://pubimage.360doc.com/wz/default.gif)
16
![](http://pubimage.360doc.com/wz/default.gif)
17
![](http://pubimage.360doc.com/wz/default.gif)
18
![](http://pubimage.360doc.com/wz/default.gif)
19
![](http://pubimage.360doc.com/wz/default.gif)
20
![](http://pubimage.360doc.com/wz/default.gif)
21
![](http://pubimage.360doc.com/wz/default.gif)
22
![](http://pubimage.360doc.com/wz/default.gif)
23
![](http://pubimage.360doc.com/wz/default.gif)
24
![](http://pubimage.360doc.com/wz/default.gif)
25
![](http://pubimage.360doc.com/wz/default.gif)
26
![](http://pubimage.360doc.com/wz/default.gif)
27
![](http://pubimage.360doc.com/wz/default.gif)
28
![](http://pubimage.360doc.com/wz/default.gif)
29
![](http://pubimage.360doc.com/wz/default.gif)
30
![](http://pubimage.360doc.com/wz/default.gif)
31
![](http://pubimage.360doc.com/wz/default.gif)
32
![](http://pubimage.360doc.com/wz/default.gif)
33
![](http://pubimage.360doc.com/wz/default.gif)
34
![](http://pubimage.360doc.com/wz/default.gif)
35
![](http://pubimage.360doc.com/wz/default.gif)
36
![](http://pubimage.360doc.com/wz/default.gif)
37
![](http://pubimage.360doc.com/wz/default.gif)
38
![](http://pubimage.360doc.com/wz/default.gif)
39
![](http://pubimage.360doc.com/wz/default.gif)
40
![](http://pubimage.360doc.com/wz/default.gif)
41
![](http://pubimage.360doc.com/wz/default.gif)
42
![](http://pubimage.360doc.com/wz/default.gif)
43
![](http://pubimage.360doc.com/wz/default.gif)
44
![](http://pubimage.360doc.com/wz/default.gif)
45
![](http://pubimage.360doc.com/wz/default.gif)
46
![](http://pubimage.360doc.com/wz/default.gif)
47
![](http://pubimage.360doc.com/wz/default.gif)
48
![](http://pubimage.360doc.com/wz/default.gif)
49
![](http://pubimage.360doc.com/wz/default.gif)
50
![](http://pubimage.360doc.com/wz/default.gif)
51
![](http://pubimage.360doc.com/wz/default.gif)
52
![](http://pubimage.360doc.com/wz/default.gif)
53
![](http://pubimage.360doc.com/wz/default.gif)
54
![](http://pubimage.360doc.com/wz/default.gif)
55
![](http://pubimage.360doc.com/wz/default.gif)
56
![](http://pubimage.360doc.com/wz/default.gif)
57
![](http://pubimage.360doc.com/wz/default.gif)
58
![](http://pubimage.360doc.com/wz/default.gif)
59
![](http://pubimage.360doc.com/wz/default.gif)
60
![](http://pubimage.360doc.com/wz/default.gif)
61
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
62
![](http://pubimage.360doc.com/wz/default.gif)
63
![](http://pubimage.360doc.com/wz/default.gif)
64
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
65
![](http://pubimage.360doc.com/wz/default.gif)
66
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
67
![](http://pubimage.360doc.com/wz/default.gif)
68
![](http://pubimage.360doc.com/wz/default.gif)
69
![](http://pubimage.360doc.com/wz/default.gif)
70
![](http://pubimage.360doc.com/wz/default.gif)
71
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
72
![](http://pubimage.360doc.com/wz/default.gif)
73
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
74
![](http://pubimage.360doc.com/wz/default.gif)
75
![](http://pubimage.360doc.com/wz/default.gif)
76
![](http://pubimage.360doc.com/wz/default.gif)
77
![](http://pubimage.360doc.com/wz/default.gif)
78
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
79
![](http://pubimage.360doc.com/wz/default.gif)
80
![](http://pubimage.360doc.com/wz/default.gif)
81
![](http://pubimage.360doc.com/wz/default.gif)
82
![](http://pubimage.360doc.com/wz/default.gif)
83
![](http://pubimage.360doc.com/wz/default.gif)
84
![](http://pubimage.360doc.com/wz/default.gif)
85
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
86
![](http://pubimage.360doc.com/wz/default.gif)
87
![](http://pubimage.360doc.com/wz/default.gif)
88
![](http://pubimage.360doc.com/wz/default.gif)
89
![](http://pubimage.360doc.com/wz/default.gif)
90
![](http://pubimage.360doc.com/wz/default.gif)
91
![](http://pubimage.360doc.com/wz/default.gif)
92
![](http://pubimage.360doc.com/wz/default.gif)
93
![](http://pubimage.360doc.com/wz/default.gif)
94
![](http://pubimage.360doc.com/wz/default.gif)
95
![](http://pubimage.360doc.com/wz/default.gif)
96
![](http://pubimage.360doc.com/wz/default.gif)
97
![](http://pubimage.360doc.com/wz/default.gif)
98
![](http://pubimage.360doc.com/wz/default.gif)
99
![](http://pubimage.360doc.com/wz/default.gif)
100
![](http://pubimage.360doc.com/wz/default.gif)
101
![](http://pubimage.360doc.com/wz/default.gif)
102
![](http://pubimage.360doc.com/wz/default.gif)
103
![](http://pubimage.360doc.com/wz/default.gif)
104
![](http://pubimage.360doc.com/wz/default.gif)
105
![](http://pubimage.360doc.com/wz/default.gif)
106
![](http://pubimage.360doc.com/wz/default.gif)
107
![](http://pubimage.360doc.com/wz/default.gif)
108
![](http://pubimage.360doc.com/wz/default.gif)
109
![](http://pubimage.360doc.com/wz/default.gif)
110
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
111
![](http://pubimage.360doc.com/wz/default.gif)
112
![](http://pubimage.360doc.com/wz/default.gif)
113
![](http://pubimage.360doc.com/wz/default.gif)
114
![](http://pubimage.360doc.com/wz/default.gif)
115
![](http://pubimage.360doc.com/wz/default.gif)
116
![](http://pubimage.360doc.com/wz/default.gif)
117
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
118
![](http://pubimage.360doc.com/wz/default.gif)
119
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
120
![](http://pubimage.360doc.com/wz/default.gif)
121
![](http://pubimage.360doc.com/wz/default.gif)
122
![](http://pubimage.360doc.com/wz/default.gif)
123
![](http://pubimage.360doc.com/wz/default.gif)
124
![](http://pubimage.360doc.com/wz/default.gif)
125
![](http://pubimage.360doc.com/wz/default.gif)
126
![](http://pubimage.360doc.com/wz/default.gif)
127
![](http://pubimage.360doc.com/wz/default.gif)
128
![](http://pubimage.360doc.com/wz/default.gif)
129
![](http://pubimage.360doc.com/wz/default.gif)
130
![](http://pubimage.360doc.com/wz/default.gif)
131
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
132
![](http://pubimage.360doc.com/wz/default.gif)
133
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
134
![](http://pubimage.360doc.com/wz/default.gif)
135
![](http://pubimage.360doc.com/wz/default.gif)
136
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
137
![](http://pubimage.360doc.com/wz/default.gif)
138
![](http://pubimage.360doc.com/wz/default.gif)
139
![](http://pubimage.360doc.com/wz/default.gif)
140
![](http://pubimage.360doc.com/wz/default.gif)
141
![](http://pubimage.360doc.com/wz/default.gif)
142
![](http://pubimage.360doc.com/wz/default.gif)
143
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
144
![](http://pubimage.360doc.com/wz/default.gif)
145
![](http://pubimage.360doc.com/wz/default.gif)
146
![](http://pubimage.360doc.com/wz/default.gif)
147
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
148
![](http://pubimage.360doc.com/wz/default.gif)
149
![](http://pubimage.360doc.com/wz/default.gif)
150
![](http://pubimage.360doc.com/wz/default.gif)
151
![](http://pubimage.360doc.com/wz/default.gif)
152
![](http://pubimage.360doc.com/wz/default.gif)
153
![](http://pubimage.360doc.com/wz/default.gif)
154
![](http://pubimage.360doc.com/wz/default.gif)
155
![](http://pubimage.360doc.com/wz/default.gif)
156
![](http://pubimage.360doc.com/wz/default.gif)
157
![](http://pubimage.360doc.com/wz/default.gif)
158
![](http://pubimage.360doc.com/wz/default.gif)
159
![](http://pubimage.360doc.com/wz/default.gif)
160
![](http://pubimage.360doc.com/wz/default.gif)
161
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
162
![](http://pubimage.360doc.com/wz/default.gif)
163
![](http://pubimage.360doc.com/wz/default.gif)
164
![](http://pubimage.360doc.com/wz/default.gif)
165
![](http://pubimage.360doc.com/wz/default.gif)
166
![](http://pubimage.360doc.com/wz/default.gif)
167
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
168
![](http://pubimage.360doc.com/wz/default.gif)
169
![](http://pubimage.360doc.com/wz/default.gif)
170
![](http://pubimage.360doc.com/wz/default.gif)
171
![](http://pubimage.360doc.com/wz/default.gif)
172
![](http://pubimage.360doc.com/wz/default.gif)
173
![](http://pubimage.360doc.com/wz/default.gif)
174
![](http://pubimage.360doc.com/wz/default.gif)
175
![](http://pubimage.360doc.com/wz/default.gif)
176
![](http://pubimage.360doc.com/wz/default.gif)
177
![](http://pubimage.360doc.com/wz/default.gif)
178
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
179
![](http://pubimage.360doc.com/wz/default.gif)
180
![](http://pubimage.360doc.com/wz/default.gif)
181
![](http://pubimage.360doc.com/wz/default.gif)
182
![](http://pubimage.360doc.com/wz/default.gif)
183
![](http://pubimage.360doc.com/wz/default.gif)
184
![](http://pubimage.360doc.com/wz/default.gif)
185
![](http://pubimage.360doc.com/wz/default.gif)
186
![](http://pubimage.360doc.com/wz/default.gif)
187
![](http://pubimage.360doc.com/wz/default.gif)
更重要的是SWT_AWT主要是将AWT嵌入SWT中,而ChartComposite则是将chart对象直接转换为SWT中的东东,连右键都是SWT的了~
声明:
永久性关闭本Blog,内容已经迁往 www.lign.name 全新的空间,全新的内容,敬请关注!
posted on 2007-08-21 09:22 阿南 阅读(1079) 评论(1) 编辑 收藏 所属分类: 西安java用户群 、Eclipse-SWT
评论
# re: SWT中使用JFreeChart(无需SWT_AWT)[未登录] 2007-08-21 17:37 寒武纪![](//pubimage.360doc.com/wz/default.gif)