http://www.jfree.org/jfreechart/中一开始就说自己是为了开发者制作专业的高质量的图表的一个100%纯免费(自由的)java类库。
从出现到现在已经有9个多年头了。无疑现在是java报表工具的首选了。
使用之前肯定要先获得jar包(这点可以写入java开发的规范中去了)。
1:从http://sourceforge.net/projects/jfreechart/files/下载jfreechart-1.0.13 (最新版)。我们用到的只有三个文件: jfreechart - 1.0.13.jar 、jcommon-1.0.16.jar、gnujaxp.jar。
2:其核心类包 为:
org.jfree.chart:核心类库,包含JFreeChart 和 ChartPanel .
org.jfree.data:描述了各种类型的数据集
org.jfree.chart.plot:图表区域对象
核心的类 文件有:
org.jfree.chart.JFreeChart :图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart 引擎本身提供了一个工厂类用于创建不同类型的图表对象
org.jfree.data.category.XXXDataSet: 数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
org.jfree.chart.plot.XXXPlot :图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
org.jfree.chart.axis.XXXAxis :用于处理图表的两个轴:纵轴和横轴
org.jfree.chart.render.XXXRender :负责如何显示一个图表对象
org.jfree.chart.urls.XXXURLGenerator: 用于生成Web图表中每个项目的鼠标点击链接
XXXXXToolTipGenerator: 用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
3:使用JFreeChart生成图表
1: 柱状图
用到的类有:
org.jfree.data.category.DefaultCategoryDataset: 继承于CategoryDataset类,
方法: public void addValue (double value,
java.lang.Comparable rowKey,
java.lang.Comparable columnKey)
org.jfree.chart.ChartFactory :得到各种类型的chart的工厂类。
public static JFreeChart createBarChart (java.lang.String title,
java.lang.String categoryAxisLabel,
java.lang.String valueAxisLabel,
CategoryDataset dataset,
PlotOrientation orientation,
boolean legend,
boolean tooltips,
boolean urls)
org.jfree.chart.ChartUtilities
将chart转化为图片的方法集合类。
2:饼状图:
和上面类似:我们可以用PieDataset作为数据集。
ChartFactory.createPieChart3D(title,
dataset,
true, // 是否显示图例
false,// 是否生成工具
false// 是否生成url
);得到Jfreechart。
Jfreechart的中文支持并不是很好,需要对其设置字体。
下面是一个简单的例子: