`
jsupport
  • 浏览: 36780 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jFreeChart(动态web应用)

阅读更多
 

JFreeChart 1.0.2的动态应用,根据数据库中的数据生成饼图:(部分来自网页)

本文用的是JFreeChart 1.0.2 (根据版本不同需要根据类修改部分代码)

下载:http://www.jfree.org/jfreechart/index.html

下载后解压jfreechart-1.0.2.zip,会发现在lib下有几个jar文件,本文只介绍生成饼图的例子:

1,首先将lib下的jcommon-1.0.5.jar和jfreechart-1.0.2.jar放到你的项目的lib下面,

2,一个用于实验的表:(client)

id

client_name

1

一级分销商

2

二级分销商

3

三级分销商

3,建立一个用于查询数据的类:

package com.drp.statreport;

import java.sql.*;

import java.util.HashMap;

import java.util.Map;

import com.drp.util.DB;//我的一个用于链接数据库的javabeen

/**

 * 统计报表管理类,采用单例模式

 * @author qiao

 */

public class StateReportManger {

   private static StateReportManger intense = new StateReportManger();

   private StateReportManger(){}

   public static StateReportManger getIntense(){

        return intense;

   }

   /**

    * 返回分销商级别数

    * @return 返回Map<client_name,数量> eg:("一级分销商,10","二级分销商,10")

    */

   public Map getClientLevelCount(){

        Map map = new HashMap();

        String sql = "select client_name,count(id) as  qty from  client  group by  client_name ";

        Connection conn = null;

        Statement stmt = null;

        ResultSet rs = null;

        try{

           conn = DB.getConn();//自己的javabeen链接数据库

            stmt = conn.createStatement();

            rs = stmt.executeQuery(sql);

            while(rs.next()){     

                 map.put(rs.getString("client_name"), rs.getInt("qty"));

            }

       }catch(SQLException e){

            e.printStackTrace();

        }finally{

            DB.close(rs);//javabeen用于关闭资源

            DB.close(stmt);

            DB.close(conn);

        }

     return map;

   }

}

4,建立一个servlet输出图形:

Web.xml中添加如下配置:

<servlet>

    <servlet-name>ChartDemoServlet</servlet-name>

    <servlet-class> com.drp.util.servlet.ChartDemoServlet</servlet-class>

 </servlet>

<servlet-mapping>

    <servlet-name>ChartDemoServlet</servlet-name>

    <url-pattern>/servlet/ChartDemoServlet</url-pattern>

 </servlet-mapping>

package com.drp.util.servlet;

import java.io.FileOutputStream;

import java.io.IOException;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.HttpServlet;

import org.jfree.data.*;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.chart.*;

import org.jfree.chart.labels.StandardPieSectionLabelGenerator;

import org.jfree.chart.plot.PiePlot3D;

import com.drp.statreport.StateReportManger;

/**

 * 演示通过servlet直接输出图表

 * @author

 */

public class ChartDemoServlet extends HttpServlet {

     public void service(ServletRequest req, ServletResponse res)

         throws ServletException, IOException

     {

         res.setContentType("image/jpeg");

         DefaultPieDataset data = getDataSet();

         JFreeChart chart = ChartFactory.createPieChart3D("分销商分布",data,true,false,false);

         PiePlot3D plot=(PiePlot3D)chart.getPlot();

         // 图片中显示百分比:默认方式

         //plot.setLabelGenerator(new StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));

         // 图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位

         plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));

         // 图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例

         plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));

         ChartUtilities.writeChartAsJPEG(res.getOutputStream(),

                   1.0f,chart,400,300,null);

     }

     /**

      * 获取一个演示用的简单数据集对象

      * @return

      */

     private static DefaultPieDataset getDataSet() {

         DefaultPieDataset dataset = new DefaultPieDataset();

         Map map = StateReportManger.getIntense().getClientLevelCount(); //调用getClientLevelCount()得到所有的数据

         for(Iterator iter = map.entrySet().iterator();iter.hasNext();){//遍历,用到Map的. entrySet()方法

              Map.Entry entry = (Map.Entry) iter.next();

              dataset.setValue((String)entry.getKey(), Double.parseDouble(String.valueOf(entry.getValue())));//设置数据

         }

         return dataset;

     }

}

5,在地址栏输入http://localhost:8080/(你的项目名称)/servlet/ChartDemoServlet 就可以看到如下图:


分享到:
评论

相关推荐

    JFreeChart 在 web中的应用

    JFreeChart 在 web中的应用JFreeChart 在 web中的应用JFreeChart 在 web中的应用JFreeChart 在 web中的应用JFreeChart 在 web中的应用

    JFreeChart -- web图表生成源码

    WWW的发展使得基于因特网的应用程序不再局限于静态或者简单的动态内容提供。传统的一些以软件包形式发布应用程序例如报表系统等都在逐渐搬到...因此我们下面将介绍一个JAVA的图表引擎JFreeChart用来产生基于WEB的图表。

    jfreeChart 在 JAVA WEB项目中的应用_图文.doc

    java

    JFreeChart使用总结

    当在项目中客户需要图标分析时,JFreeChart便是最好的选择,JFreeChart是开源项目,可以方便的从其官方网站上获得其源代码,可以方便的与Swing相结合使用,还可以导入到Web页面中,更是可以方便的利用其工厂方法将...

    JFreechart-web图表书第4章

    应用服务器(Application Server)是运行Java企业组件的平台,在开发企业级的Web应用程序方面能提供更灵活强大的支持,构成应用软件的主要运行环境。当前主流的应用服务器是BEA公司的Weblogic Server和IBM公司的...

    jFreeChart应用

    jFreeChart应用,包含web应用及普通应用程序应用,含有jFreeChart所需的jar包及相关教程,还有两个简单的实例源代码,jFreeChart入门很有帮助

    Java Web应用开发 58 课堂案例-应用JFreeChart组件实现柱状图.docx

    Java Web应用开发 58 课堂案例-应用JFreeChart组件实现柱状图.docx 学习资料 复习资料 教学资源

    JFreeChart使用心得+列子

    JFreeChart使用心得:JFreeChart使用具体每一步的编码及注释。+ 一个web应用下的实际例子 注:转自其他人的总结。

    Java Web应用开发 57 课堂案例-应用JFreeChart组件生成饼形图.docx

    Java Web应用开发 57 课堂案例-应用JFreeChart组件生成饼形图.docx 学习资料 复习资料 教学资源

    Jfreechart

    1. JFreeChart是一组功能强大、...它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领读者学习在JFreeChart中饼图、柱状图和曲线图的进阶应用,来达到熟练使用JFreeChart的目的。

    jfreechart各类曲线图JSP代码

    饼图,柱形图,曲线图!...它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领读者学习在JFreeChart中饼图、柱状图和曲线图的进阶应用,来达到熟练使用JFreeChart的目的。

    struts2 + jfreechart demo

    继上次发的普通web下的jfreechart应用demo,struts2下jfreechart的应用,源码

    JFreeChart 开发文档汇总

    jfreechart-1.0.0-demo.jar jfreechart-1.0.0.zip JFreeChart-API.chm JFreeChart -- 柱状图.mht ...JFreeChart在JSP开发中的应用心得.mht 使用 JFreeChart来创建基于web的图表_IBM.mht 使用JFreeChart创建图象http.mht

    jfreechart---lib.zip

    JFreeChart是完全基于Java语言的开源项目,因此可以使用在Java开发环境中,包括Java应用程序,或者是Java Web应用都没有任何问题。结合iText项目,可将生成的统计图表输出到PDF文件中;结合最新的POI项目,也可以将...

    JFreeChart使用教程(中文).pdf

    用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领读者学习在 JFreeChart中饼图、柱状图和曲线图的进阶应用,来达到熟练使用JFreeChart的目的。 1. JFreeChart JFreeChart 是...

    使用 JFreeChart来创建基于web的图表

    使用 JFreeChart来创建基于web的图表,包括饼图、折线图、柱形图、平面、立体的以及桌面应用的图标开发和WEB图表开发

    Java Web开发实例大全(基础卷) 完整pdf扫描版[179MB]

    Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...

    jfreechart技术研究文档

    Jfreechart研究技术文档,包括技术简介、应用范围、技术特点、基本概念、技术举例、使用步骤归纳、参考资料说明

    JFreeChart使用教程(含下载、安装)

    JFreeChart是一组功能强大、灵活...它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领读者学习在JFreeChart中饼图、柱状图和曲线图的进阶应用,来达到熟练使用JFreeChart的目的。

    JFreeChart组件在基于JSP的Web统计图表中的应用与实现(1).pdf

    JFreeChart组件在基于JSP的Web统计图表中的应用与实现(1).pdf.........

Global site tag (gtag.js) - Google Analytics