最近由于项目需要,开始学习JFreeChart和iText,在网上找了一下相关的资料不是很多,特别是JFreeChart在官方文档上没有像iText那样详尽的说明及例子,而且官方的demo只有一个jar文件,里面也比较乱,不知道从什么地方下手,在网上找了几个例子,开始循序渐进的学吧!
第一个例子是个台湾人写的,很多的名词都是用的台湾说法,读过侯捷先生翻译的书的朋友应该有很深的体会!学习任何一个开源的项目第一个任务就是配环境,
JFreeChart 首頁:
http://www.jfree.org/jfreechart/
JFreeChart API:
http://www.jfree.org/jfreechart/javadoc/
目前的版本:jfreechart-1.0.0
具体的安装和classpath的配置就不多说了

上面就是该例子要生成的柱状图!代码如下:
package HelloJChart;
import Java.awt.Dimension;
import javax.Swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class HelloBarChart extends JFrame{
public HelloBarChart(){
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
chart = customizeChart(chart);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
getContentPane().add(chartPanel);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new HelloBarChart();
}
private CategoryDataset createDataset(){
// row keys...
String series1 = "First";
String series2 = "Second";
String series3 = "Third";
// column keys...
String category1 = "Category 1";
String category2 = "Category 2";
String category3 = "Category 3";
String category4 = "Category 4";
String category5 = "Category 5";
// create the dataset...
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.5, series1, category1);
dataset.addValue(4.2, series1, category2);
dataset.addValue(3.0, series1, category3);
dataset.addValue(5.0, series1, category4);
dataset.addValue(5.0, series1, category5);
dataset.addValue(5.5, series2, category1);
dataset.addValue(7.8, series2, category2);
dataset.addValue(6.0, series2, category3);
dataset.addValue(8.0, series2, category4);
dataset.addValue(4.0, series2, category5);
dataset.addValue(4.0, series3, category1);
dataset.addValue(3.0, series3, category2);
dataset.addValue(2.0, series3, category3);
dataset.addValue(3.0, series3, category4);
dataset.addValue(6.0, series3, category5);
return dataset;
}
private JFreeChart createChart(final CategoryDataset dataset){
JFreeChart chart = ChartFactory.createBarChart(
"Hello Bar Chart", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);
return chart;
}
private JFreeChart customizeChart(final JFreeChart chart){
return chart;
}
}
要建立一個JFreeChart的圖形主要有三個步驟
- 建立一個擁有資料的DataSet
- 用DataSet創造JFreeChart
- 對JFreeChart作一些自訂的設計
- 顯示JFreeChart
第一步:建立DataSet
BarChart使用的DataSet接口org.jfree.data.CategoryDataset的DataSet。
有兩種方式來建立CategoryDataSet
- 使用CategoryDataSet的子类org.jfree.data.DefaultCategoryDataset,再用addValue()把資料加入DataSet中
- 建立包含數值的二維陣列,再使用org.jfree.data.DatasetUtilities的createCategoryDataset()
使用DefaultCategoryDataSet
DefaultCategoryDataSet class:
public void addValue(double value文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




