日期:2014-05-16  浏览次数:20377 次

[JSP]jfreechart+sql实现时间曲线图
前不久为公司客户写了个曲线图的程序

用jsp帮助实现的,当中遇到了不少的问题,后来在ITPUB的一些朋友和自己的辛苦努力下终于完成了该程序

学会了自己看API来写程序,正如ITPUB的一位老将所言,如果不会看API,还是放弃编程,在这次事件之后,确实发现,API是编程时不可或缺的“工具”,hoho

在这里把我使用的例子写出来,其中的参数只作参考

<转载请注明出处——作者:欣水寓言 Email:fableking17@163.com>

一、JFreeChart获取。
JFreeChart是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下:
         1、JFreeReport:报表解决工具
         2、JFreeChart:Java图形解决方案(Application/Applet/Servlet/Jsp)
         3、JCommon:JFreeReport和JFreeChart的公共类库
         4、JFreeDesigner:JFreeReport的报表设计工具

     我们可以从jfree官方网站上获取最新版本和相关资料(但是jfree的document需要40美金才能获取),
     获取地址:http://www.jfree.org/jfreechart/index.html(同时可以获得简明介绍)
     我们以当前最新版本:jfreechart_0.9.21.zip为例子进行说明。

二、JFreeChart配置安装
     1、解压jfreechart_0.9.21.zip到指定位置,其中source是jfreechart的源码,jfreechart-0.9.21-demo.jar
        是例子程序(该部分留给大家自己去研究)
     2、为了配置成功,我们需要关注的文件有如下三个:jfreechart-0.9.21.jar、lib\jcommon-0.9.6.jar、
        lib\gnujaxp.jar
     3、如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%\LIB中,同时在环境变量CLASSPATH中加入
        如果是WEB开发,以TOMCAT中的一个WEB项目TEST为例子说明:
        把上述三个文件拷贝到TEST\WEB-INF\LIB中,然后修改TEST\WEB-INF\web.xml文件,在其中加入如下代码:
                 <servlet>
                     <servlet-name>DisplayChart</servlet-name>
                     <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
                 </servlet>
                 <servlet-mapping>
                     <servlet-name>DisplayChart</servlet-name>
                     <url-pattern>/servlet/DisplayChart</url-pattern>
                 </servlet-mapping>
                至此jfreechart的配置就完成了,下面就可以进行jfreechart的开发了。这里值得提出的是jfreechart的类
        结构设计前后兼容性不是很好,不同版本的jfreechart中类库结构可能不一样,有时候可能需要查源码。如果
        是中文显示的时候可能依据观感需要改变源码的字体,不过我个人觉得这个版本比以前版本要好一些。

三、Demo
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import =" java.awt.*,
java.text.SimpleDateFormat,
javax.swing.JPanel,
org.jfree.chart.ChartFactory,
org.jfree.chart.ChartPanel,
org.jfree.chart.JFreeChart,
org.jfree.chart.axis.DateAxis,
org.jfree.chart.plot.XYPlot,
org.jfree.chart.renderer.xy.XYItemRenderer,
org.jfree.chart.renderer.xy.XYLineAndShapeRenderer,
org.jfree.data.time.*,
org.jfree.data.time.TimeSeries,
org.jfree.data.time.TimeSeriesCollection,
org.jfree.data.xy.XYDataset"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="java.util.*"%>