jfreechart学习心得(与大家分享)

来源:互联网 发布:java8函数式编程 编辑:程序博客网 时间:2024/05/21 10:07

 自己在网上搜了很多 最后好不容易 弄出来 第一次弄  呵呵  拿出来  分享一下:

写的 比较全面

/**

* 类库

* 1、jfreechart-1.0.5.jar、jcommon-1.0.9.jar、gnujaxp.jar
* 2、jbcl.jar、dx.jar、beandt.jar 由JBuilder2006的lib下提供

*/

 

首先 1.  这是jsp页面显示报表代码:

 

  1. <%@ page contentType="text/html;charset=GBK"%>
  2. <%@ page import="org.jfree.data.general.DefaultPieDataset"%>
  3. <%@ page import="org.jfree.chart.*"%>
  4. <%@ page import="org.jfree.chart.plot.*"%>
  5. <%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
  6. <%@ page import="org.jfree.chart.labels.StandardPieToolTipGenerator"%>
  7. <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
  8. <%@ page import="java.io.*"%>
  9. <%@ page import="ycf.domain.Top"%>
  10. <%@ page import="ycf.service.MerInfoService"%>
  11. <%@ page import="java.util.*"%>
  12. <HTML> 
  13. <HEAD> 
  14. <META http-equiv=Content-Type content="text/html; charset=GBK"
  15. <META NAME="Author" CONTENT="Alpha">
  16. </HEAD> 
  17. <BODY> 
  18.  <%
  19.             List lt=null;
  20.    MerInfoService merInfoService=new MerInfoService();
  21.    Top top=new Top();
  22.    lt=merInfoService.getTop5();
  23.    Iterator it=lt.iterator();
  24.        DefaultPieDataset dpd = new DefaultPieDataset();
  25.        while(it.hasNext()){
  26.       top=(Top)it.next();
  27.       String name=String.valueOf(top.getMerId());
  28.       int value=top.getTotalQuantity();
  29.       dpd.setValue(name,value);
  30.      }
  31.    
  32.             PiePlot3D plot = new PiePlot3D(dpd);//生成一个3D饼图 
  33.             //plot.setURLGenerator(new StandardPieURLGenerator("DegreedView.jsp"));//设定图片链接 
  34.             JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true); 
  35.             chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色 
  36.             chart.setTitle("订购排行榜分析");//可选,设置图片标题 
  37.             plot.setToolTipGenerator(new StandardPieToolTipGenerator()); 
  38.             StandardEntityCollection sec = new StandardEntityCollection(); 
  39.             ChartRenderingInfo info = new ChartRenderingInfo(sec); 
  40.             PrintWriter w = new PrintWriter(out);//输出MAP信息 
  41.             //500是图片长度,300是图片高度
  42.             //String filename = ServletUtilities.saveChartAsPNG(chart,500,300,info,session); 
  43.             String filename = ServletUtilities.saveChartAsJPEG(chart,500,300,info,session); 
  44.             ChartUtilities.writeImageMap(w,"map0",info,false); 
  45.             String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
  46. %> 
  47. <P ALIGN="CENTER"
  48. <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0"
  49. </P> 
  50. </BODY> 
  51. </HTML>

2.这是java  application显示报表:

 

  1. package ycf.jfreechart;
  2. import java.util.Iterator;
  3. import java.util.List;
  4. import org.jfree.chart.JFreeChart;
  5. import org.jfree.chart.ChartFactory;
  6. import org.jfree.chart.ChartFrame;
  7. import org.jfree.data.general.DefaultPieDataset;
  8. import ycf.domain.Top;
  9. import ycf.presentation.MerInfoBean;
  10. import ycf.service.MerInfoService;
  11. public class Top5 {
  12.  private static List lt=null;
  13.  private MerInfoService merInfoService=null;
  14.  private static Top top=null;
  15.  public Top5() {
  16.   merInfoService=new MerInfoService();
  17.    }
  18.   public static void main(String[] args){
  19.   
  20.   Top5 top5=new Top5();
  21.  lt=top5.merInfoService.getTop5();
  22.  Iterator it=lt.iterator();
  23.     DefaultPieDataset dpd = new DefaultPieDataset();
  24.     while(it.hasNext()){
  25.      top=(Top)it.next();
  26.      String name=String.valueOf(top.getMerId());
  27.      int value=top.getTotalQuantity();
  28.      dpd.setValue(name,value);
  29.     }
  30.     //Create JFreeChart object
  31.     //参数可以查看源码
  32.     JFreeChart pieChart = ChartFactory.createPieChart("订购排行榜分析图",dpd,true,true,false);
  33.     ChartFrame pieFrame = new ChartFrame("订购排行榜分析图",pieChart);
  34.     pieFrame.pack();
  35.     pieFrame.setVisible(true);
  36.   }
  37. }

3.web.xml 这样配置:

 

  1.  <servlet>
  2.  <servlet-name>DisplayChart</servlet-name>
  3.  <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
  4.  </servlet>
  5.  <servlet-mapping>
  6.  <servlet-name>DisplayChart</servlet-name>
  7.  <url-pattern>/DisplayChart</url-pattern>
  8.  </servlet-mapping>

4. 这是处理从数据库中 查询数据 放入list中的函数


 

  1. //订购排行榜分析
  2.  public List getTop5()
  3.  {
  4.   return merInfoDao.getTop5();
  5.  }

5.这是sql查询语句

 

 

  1. <!-- 订购排行榜分析 -->
  2.   <select id="getTop"  resultClass="top">
  3.    select  total_quantity as totalQuantity,
  4.    merchandise_id as merId
  5.    from (select sum(merchandise_quantity) as total_quantity,merchandise_id 
  6.    from orderform_list 
  7.    group by merchandise_id 
  8.       order by  sum(merchandise_quantity) desc)
  9.       where 6>rownum
  10.   </select>

6.
总结:

虽然开始什么都不懂,但最后还是做出来了,充分验证了一个道理:

只要你打算做,肯定可以做出来 呵呵


 

 

原创粉丝点击