JFreeChat的介绍

一、简介
JFreeChart(http://www.jfree.org/) 是一个开源的 JAVA 项目,它主要用来开发各种各样的图表,这些图表包括:饼图、柱状图 ( 普通柱状图以及堆栈柱状图 ) 、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。在这些不同式样的图表上可以满足目前商业系统的要求。 JFreeChart 是一种基于 JAVA 语言的图表开发技术。 JFreeChart 可用于 Servlet 、 JSP 、 Applet 、 Java Appication 环境中,通过 JDBC 可动态显示任何数据库数据,结合 Itext 可以输出至 PDF 文件。
二、JFreeChart获取
JFreeChart 是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下:
1.JFreeReport :报表解决工具
2.JFreeChart:Java 图形解决方案(Application/Applet/Servlet/Jsp)
3.JCommon :JFreeReport和JFreeChart的公共类库
4.JFreeDesigner :JFreeReport的报表设计工具
我们可以从jfree官方网站上获取最新版本和相关资料,
获取地址:http://www.jfree.org/
当前最新版本:jfreechart-1.0.3.zip。
、JFreeChart配置安装
1 、解压jfreechart-1.0.3.zip.到指定位置,其中source是jfreechart的源码,jfreechart-1.0.3-demo.jar 是例子程序,可以先运行一下看看各种效果。
2 、为了配置成功,我们需要关注的文件有如下三个:
设置classpath。加入下面三个jar包。
jfreechart-1.0.3.jar 、jcommon-1.0.8.jar、gnujaxp.jar 
至此jfreechart的配置就完成了 。
四、JFreeChart功能介绍
JFreeChart 目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面:
pie charts (2D and 3D) :饼图(平面和立体)
bar charts (regular and stacked, with an optional 3D effect) :柱状图
line and area charts :曲线图
scatter plots and bubble charts
time series, high/low/open/close charts and candle stick charts :时序图
combination charts :复合图
Pareto charts
Gantt charts :甘特图
wind plots, meter charts and symbol charts
wafer map charts
( 态图表,饼图(二维和三维) , 柱状图 ( 水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表)
图形可以导出成PNG和JPEG格式,同时还可以与PDF和EXCEL关联
JFreeChart 核心类库介绍:
研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart,org.jfree.data。其中前者主要与图形
本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究 。
核心类主要有:
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: 用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类 。

参考地址:

http://ltc603.javaeye.com/blog/30207
http://blog.sina.com.cn/u/405da78d010000ap
http://www.blogjava.net/Alpha/archive/2007/01/13/93569.html 

 

用jfreechat编写图形化统计数据程序
 
作者:未知    文章来源:转载    点击数: <script language="javascript" src="/Article/GetHits.asp?ArticleID=731" type="text/javascript"></script> 2004    更新时间:2006-5-19
<script language="javascript" src="/AD/200602/14.js" type="text/javascript"></script>
<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
<script src="/AD/ADCount.asp?Action=View&ADID=7" type="text/javascript"></script>
 在软件报今年10月第42期上看了一篇文章,作者是张韬,就是下面这个例子。软件报不知大家平常留意过没有,上面一些介绍电脑、软件使用,网络技术应用的文章还是非常不错的,如今年10月第41期《Windows 2003 单网卡实现VPN》,在编程学苑栏目中有整版整版学习VB、VFP、ASP、.NET的文章,令JAVA爱好者惊叹不已,近来也慢慢有一些JAVA方面的内容。闲话少说,还是看看jfreechart,到http://www.jfree.org/下载最新的 jfreechart-1.0.0-rc1.zip,把下面的例子跑起来再说。运行图(所有源文件请下载):



由此看出,新的API有一些变化(我已前用过0.8版),增加了3D等效果。

一、在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>
二、解压下载的jfreechar工具包,将解压后的jfreechar下lib目录中的五个文件复制到你的项目的WEB-INF/lib下。
如下载 jfreechart-1.0.0-rc1.zip

三、创建Access数据库aaa中的表test



四、JSP源程序:

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.awt.*" %>
<%@ page import="org.jfree.chart.*" %>
<%@ page import="org.jfree.chart.plot.*" %>

<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection" %>
<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D" %>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset" %>

<%@ page import="org.jfree.data.general.DefaultPieDataset" %>

<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D" %>

<html>
<head><title>Jfree图表</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body>
<div align="cente"><P><font size="4" face="楷体_GB2312"><strong><font color="#0099ff">招生统计信息</font></strong></font></p>
</div>

<%
 //设置生成饼状图
    int i=0;
    String[] area={"南京市","镇江市","常州市","无锡市","苏州市","南通市"};
    try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con=DriverManager.getConnection("jdbc:odbc:aaa");
        Statement sql=con.createStatement();
        ResultSet rs=sql.executeQuery("select * from test");
       
        //按地区进行统计
        PrintWriter pw=null;
        DefaultPieDataset dataset=new DefaultPieDataset();
        //设置数据源
        while(rs.next()){
          String dq=rs.getString("dq");

           dataset.setValue(area[i],Integer.parseInt(dq));
         
          //添加数据,参数包括名称和数值
           i++;
        }
        rs.close();
        sql.close();
        con.close();
       
        JFreeChart chart=ChartFactory.createPieChart("饼型图",dataset,true,true,true);
        chart.setTitle("统计图");//设置图片标题
        ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
        String filename=ServletUtilities.saveChartAsJPEG(chart,300,200,info,session);
        //设置生成图片,包括图片的大小,长度是300,宽是200
        //out.println(filename);
       session.setAttribute("file_name1",filename);
        String URL= request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; 
        session.setAttribute("file_url1",URL);

        }
        catch(SQLException e){
          out.println(e);
       }
        


%>

<%

 //生成柱状图
        try{
         int j=0;
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         Connection con=DriverManager.getConnection("jdbc:odbc:aaa");
         Statement sql=con.createStatement();
         ResultSet rs=sql.executeQuery("select * from test");
         DefaultCategoryDataset dataset=new DefaultCategoryDataset();//设置数据源



         while(rs.next()){
         dataset.addValue(Integer.parseInt(rs.getString("dq")),"学校",area[j]);
         //添加数据,参数包括名称和数值
         j++;
         }
 
         JFreeChart chart1=ChartFactory.createBarChart3D("统计图","招生地区","招生人数",
                dataset,PlotOrientation.VERTICAL,false,false,false); CategoryPlot plot=chart1.getCategoryPlot(); BarRenderer3D renderer1=new BarRenderer3D(); renderer1.setItemLabelsVisible(true);//显示每个柱子上的数据 renderer1.setItemMargin(0.1);//设置每个柱子之间的距离 plot.setRenderer(renderer1);//让上面对柱子的设置生效 String filename=ServletUtilities.saveChartAsJPEG(chart1,300,200,session); //生成图片,包括图片的大小 session.setAttribute("file_name2",filename); String URL=request.getContextPath()+"/servlet/DisplayChart?filename="+filename; session.setAttribute("file_url2",URL); }catch(SQLException e){}

 

%>
<center><img src="<%=session.getAttribute("file_url1")%>" width=300 height=200 border=0 usemap="#<%=session.getAttribute("file_name1") %>">

<img src="<%=session.getAttribute("file_url2") %>" width=300 height=200 border=0 usemap="#<%=session.getAttribute("file_name2")%>"></center>

</html>


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值