用户操作
[即时聊天] [发私信] [加为好友]
黑马王子ID:fzw98
35997次访问,排名3415(-1),好友2人,关注者25人。
java
fzw98的文章
原创 308 篇
翻译 0 篇
转载 24 篇
评论 22 篇
黑马王子的公告
阿里通网络电话,中国最优秀的网络电话 要向天下名师学习,这里应有尽有。 要向天下名师学习,这里应有尽有。
最近评论
catheriner66:推荐一下:开源人网站www.vifir.com 上面有比较全面系统的EXTJS学习资料
catheriner66:推荐一下:开源人网站www.vifir.com 上面有比较全面系统的EXTJS学习资料
合肥菲利浦斯电子科技:合肥菲利浦斯电子科技

菲利浦斯电子科技(合肥)有限公司,是美国菲利浦斯国际产业集团(Philipus Industry Group Ltd.CO.USA)在中国的市场运营和品牌管理机构,负责全面拓展“菲利浦斯”在中国市场的营销网络,造福中国民众。

针对中国目前严峻的室内空气污染形势,“菲利浦斯”把眼光投向中国市场。美国菲利浦斯国际产业……
合肥菲利浦斯电子科技:合肥菲利浦斯电子科技

菲利浦斯电子科技(合肥)有限公司,是美国菲利浦斯国际产业集团(Philipus Industry Group Ltd.CO.USA)在中国的市场运营和品牌管理机构,负责全面拓展“菲利浦斯”在中国市场的营销网络,造福中国民众。

针对中国目前严峻的室内空气污染形势,“菲利浦斯”把眼光投向中国市场。美国菲利浦斯国际产业……
zhangwenbo:学习了……
文章分类
收藏
    相册
    真我的风采
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 B/S方式下使用jfreechart生成统计图表收藏

    新一篇: spring1.2.6+hibernate3.0.5查询中文乱码的问题 | 旧一篇: JAVA UDP 图像传输实例

       在工作中,我们常常碰到需要在网页上绘制统计图的例子。其实实现的办法有很多,我们可以亲自编写全部图形生成代码,比如用flash,或者用svg,这样做代码量很大,还容易出错,很烦的。也可以利用现成的java统计图表库。例如用jclass(http://java.quest.com/jclass/jclass.shtml),可是这玩艺却是要收费的。对于我们这种崇尚open source的程序员来说,有没有一个开源的统计图形库呢。有,它就是www.jfree.org推出的jfreechart包,它从柱形图,饼形图,到雷达图,蜡烛图等等无所不包,可以在c/s,b/s,甚至是实时环境都能一显身手。最关键的是它是open source!我在这里给出一个在网页上绘制饼形图的简单例子。
      一、到www.jfree.org下载一个最新的java库,置jfreechart.jar和jcommon.jar.jar于classpath中
      二、编写一个java bean,用来生成饼形图。(GSPieChart.java)
      package gov.gwssi.tax.nspg.datadisposal;
    import java.awt.Insets;
    import java.awt.Image;
    import java.io.PrintWriter;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.Locale;
    import java.text.NumberFormat;
    import javax.servlet.http.HttpSession;
    import org.jfree.data.*;
    import org.jfree.chart.*;
    import org.jfree.chart.axis.*;
    import org.jfree.chart.renderer.VerticalBarRenderer;
    import org.jfree.chart.renderer.StandardXYItemRenderer;
    import org.jfree.chart.plot.*;
    import org.jfree.chart.entity.*;
    import org.jfree.chart.tooltips.*;
    import org.jfree.chart.urls.*;
    import org.jfree.chart.servlet.*;
    import java.awt.Font;
    /**
    *

    Title:


    *

    Description:


    *

    Copyright: Copyright (c) 2003


    *

    Company:


    * @author jagie
    * @version 1.0
    */
    public class GSPieChart {
    public static void main(String[] args) {
    Long[] testData = {
    new Long(10), new Long(20), new Long(30), new Long(40)};
    generatePieChart(testData, "", null, new PrintWriter(System.out), 580, 250);
    }
    /**
    * 生成图像文件
    * @param datas Long[]数组
    * @param targetUrl 点饼形图上的扇形,定向到的url
    * @param session httpsession
    * @param pw PrintWriter
    * @param w 生成的图的宽度
    * @param h 生成的图的高度
    * @return 生成的图像文件的路径
    */
    public static String generatePieChart(Long[] datas, String targetUrl,
    HttpSession session, PrintWriter pw,
    int w, int h) {
    String filename = null;
    try {
    DefaultPieDataset data = new DefaultPieDataset();
    data.setValue("正常纳税人", datas[0]);
    data.setValue("异常纳税人", datas[1]);
    data.setValue("数据不全纳税人", datas[2]);
    data.setValue("未处理纳税人", datas[3]);
    // Create the chart object
    Pie3DPlot plot = new Pie3DPlot(data);
    plot.setInsets(new Insets(0, 5, 5, 5));
    plot.setForegroundAlpha(0.6f);
    plot.setSectionLabelType(plot.NO_LABELS);
    plot.setURLGenerator(new StandardPieURLGenerator(targetUrl, "type"));
    plot.setToolTipGenerator(new StandardPieToolTipGenerator());
    JFreeChart chart = new JFreeChart(
    "数据处理结果统计图", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
    chart.setTitle(new TextTitle(
    "数据处理结果统计图", new Font("黑体", Font.BOLD, 15)));
    StandardLegend sl = (StandardLegend) chart.getLegend();
    sl.setItemFont(new Font("黑体", Font.TRUETYPE_FONT, 12));
    chart.setBackgroundPaint(new java.awt.Color(254, 254, 141));
    //因为jfreechart把生成的png文件保存在系统的临时文件夹中,你需要在适当的
    //时候调用session.removeAttribute("JFreeChart_Deleter"),这样可以保证png文
    //件被删除掉
    ChartRenderingInfo info = new ChartRenderingInfo(new
    StandardEntityCollection());
    filename = ServletUtilities.saveChartAsPNG(chart, w, h, info, session);
    // Write the image map to the PrintWriter
    ChartUtilities.writeImageMap(pw, filename, info);
    pw.flush();
    }
    catch (Exception e) {
    System.out.println("Exception - "+ e.toString());
    e.printStackTrace(System.out);
    filename = "public_error_500x300.png";
    }
    return filename;
    }
    }
    .........java代码.................
    <%
    //以下部分为图象输出
    String targetUrl="../servlet/gov.gwssi.tax.nspg.
    controlservlet.GSMainControlServlet?id="+sid;
    Long[] datas={normals,new Long(totalAbnormal),
    dataLacks,notProcesses};
    String filename=GSPieChart.generatePieChart
    (datas,targetUrl,session,new PrintWriter(out),580,250);
    String graphURL = request.getContextPath() +
    "/servlet/DisplayChart?filename=" + filename;
    %>
      三、html代码
      





    " width=580 height=250 border=0
    usemap="#<%=filename %>">

      四、在web.xml中配置jfreechart的图像生成的servlet
      [pre]
    DisplayChart
    org.jfree.chart.servlet.DisplayChart


    DisplayChart
    /servlet/DisplayChart
    [/pre]
      以上就是在b/s中使用jfreechart的大体步骤,在你下载的jfreechart的sample文件夹中找到jfreechart-sample.war文件中也有类似的例子,只不过复杂一些

    发表于 @ 2008年01月31日 15:39:00|评论(loading...)|编辑

    新一篇: spring1.2.6+hibernate3.0.5查询中文乱码的问题 | 旧一篇: JAVA UDP 图像传输实例

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 黑马王子