因为工作中要用到做图表,所以最近一直在学习JFreeChart,在学习的过程中发现JFreeChart在做图表上真的是功能很强大,柱状图、饼图、线图、甘特图等各种常见使用样式,应用相当广泛。它本身是开源免费的,但是JFreeChart的例子源码和文档是收费的。正因如此目前关于JFreeChart的应用还没有专门的书籍介绍,网上的例子也基本都是那些随包发布的,内容很浅显,许多实用的功能都不知道如何实现。
我在学习的过程中也遇到这样的问题,查不到想要的东西,JFreeChart官网上发布的例子Demo中到时有我所需要的,但那又是不公开,收费的。经过了一番思考我想到一个方法,那就是把官方公布的jfreechart-1.0.14-demo.jar实例打包程序给反编译了,通过反编译后的源码的研究,逐步学习到JFreeChart的各种用法。
jfreechart-1.0.14-demo.jar实例包中共有150多个例子,我准备一边看一边将新得整理出来,一方面方便我自己以后查看,另一方面也为正在学习JFreeChart但又找不到详细资料的人提供一点思路。这个坑有点大,可能得很长时间填完,我会不断更新,有时可能会比较慢,希望看的人不要着急,呵呵~~~
好吧,正式开始前先介绍下,我总结整理的是以jfreechart-1.0.14-demo.jar中的例子为基础,经过我自己的整合排序,重新发布出来的。这些例子都是在swing框架下实现的,所有的示例都用到一个共同的类ChartBasePanel。这个类是用来描绘JFreeChart时所用到的基础panel容器,内容如下:
package lw.release; import java.awt.LayoutManager; import java.util.ArrayList; import javax.swing.JPanel; import org.jfree.chart.JFreeChart; /** * 描绘JFreeChart所用到的基础panel容器 * * @author 刘伟 2012-10-24 */ @SuppressWarnings("serial") public class ChartBasePanel extends JPanel { ArrayList<JFreeChart> charts = new ArrayList<JFreeChart>(); public ChartBasePanel() { super(); } public ChartBasePanel(LayoutManager paramLayoutManager) { super(paramLayoutManager); } /** * 向panel容器中添加一个JFreeChart图表对象 * */ public void addChart(JFreeChart paramJFreeChart) { this.charts.add(paramJFreeChart); } /** * 得到panel容器中所有的JFreeChart图表对象 * */ public JFreeChart[] getCharts() { int chartNum = this.charts.size(); JFreeChart[] arrayOfJFreeChart = new JFreeChart[chartNum]; for (int i = 0; i < chartNum; i++){ arrayOfJFreeChart[i] =this.charts.get(i); } return arrayOfJFreeChart; } }
所有的示例,因为所有的示例都用到它,所以在此统一贴出,以后就不每个例子进行加以说明了,好吧,下一遍正式开始介绍JFreeChart的使用,尽请期待。