`

实战jfreechart

阅读更多

这是我几年前做过的一个真实的小项目,结构和设计上可能不怎么样,仅供刚接触jfreechart的朋友参考。 

显示图表的jsp:

 

test.jsp

 

<%@ page language="java" contentType="image/png;charset=GB2312"
	import="org.jfree.chart.ChartFactory"
	import="org.jfree.chart.JFreeChart"
	import="org.jfree.chart.plot.PlotOrientation"
	import="org.jfree.data.category.DefaultCategoryDataset"
	import="org.jfree.chart.servlet.ServletUtilities"
	import="org.jfree.chart.ChartRenderingInfo"
	import="org.jfree.chart.entity.StandardEntityCollection"
	import="testsystem.dao.chart.DatasetFromBuglist"
%>

<%  
  int width=600;
  int height=375;

  JFreeChart chart = new DatasetDAO ().get3DChartFromBuglist();
  ChartRenderingInfo info = new ChartRenderingInfo(new  StandardEntityCollection());

  // 设置图表的格式及文件名
  String fileName = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);

  // 设置图表浏览路径
  String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
%>

<HTML>
 <HEAD>
       <TITLE></TITLE>
 </HEAD>
 <BODY>
       <P ALIGN="CENTER">
       <img src="<%=graphURL %>" border="1" alt="3d bar chart">
       </P>
 </BODY>
</HTML>

   

 

从数据库中检索要显示的数据:

 

public class DatasetDAO {

  public JFreeChart get3DChartFromBuglist() {
    return createChart(readData());
  }

  /**
   * get data from oracle database
   */
  public JDBCCategoryDataset readData() {
    JDBCCategoryDataset data = null;

    String dbUrl = "jdbc:oracle:thin:@localhost:1521:oradb";
    Connection conn;

    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      System.out.println("loading oracle driver...!");

      conn = DriverManager.getConnection(dbUrl,"test","test");
      System.out.println("get Connection!");

      data = new JDBCCategoryDataset(conn);
      //SQL查询
	String sqlStr = “…”;	
      data.executeQuery(sqlStr);
      System.out.println("execute query!");

    } catch(ClassNotFoundException cnfe) {
      System.out.println("oracle driver can not be found!");
      System.out.println(cnfe.getMessage());

    } catch(SQLException sqle) {
      System.out.println("SQLException:");
      System.out.println(sqle.getMessage());

    } catch(Exception e) {
      System.out.println("Other Exception:");
      System.out.println(e.getMessage());
    }finally{
        conn.close();
    }

     return data;
  }

  public static JFreeChart createChart(CategoryDataset categorydataset) {
    JFreeChart jfreechart = ChartFactory.createBarChart3D(
      "各模块bug数量对比图",
      "当前版本中",
      "数量",
      categorydataset,
      PlotOrientation.VERTICAL,
      true,
      true,
      false
    );

    CategoryPlot categoryplot = jfreechart.getCategoryPlot();
    categoryplot.setForegroundAlpha(1.0F);
    CategoryAxis categoryaxis = categoryplot.getDomainAxis();
    CategoryLabelPositions categorylabelpositions = categoryaxis.getCategoryLabelPositions();
    CategoryLabelPosition categorylabelposition = new CategoryLabelPosition(RectangleAnchor.LEFT, TextBlockAnchor.CENTER_LEFT, TextAnchor.CENTER_LEFT, 0.0D, CategoryLabelWidthType.RANGE, 0.3F);
    categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.replaceLeftPosition(categorylabelpositions, categorylabelposition));

    //set the range axis to display integers only...
    final NumberAxis rangeAxis = (NumberAxis) categoryplot.getRangeAxis();
    rangeAxis.setRange(0,20);

    NumberTickUnit numberTickUnit = new NumberTickUnit(1, new DecimalFormat("0"));
    rangeAxis.setTickUnit(numberTickUnit);

    return jfreechart;
  }

}

 

2
0
分享到:
评论

相关推荐

    flex实战报表:jFreeChart,cewolf,iText.doc

    flex实战报表:jFreeChart,cewolf,iText.doc

    JfreeChart教程+API+例子

    JfreeChart 教程 中文API 各种图例子

    spring+struts2+hibernate+ajax+jfreechart 广告管理系统

    spring+struts2+hibernate+ajax+jfreechart 广告管理系统 带数据库 有十几张表 很有实战意义

    Java开发实战1200例第1卷.pdf.part4

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    Java开发实战1200例第1卷.pdf.part1

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    Java开发实战1200例第1卷.pdf.part5

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    Java开发实战1200例第1卷.pdf.part2

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    《JAVA 开发实战1200例(第二卷) 》19-21章内容

    《Java开发实战1200例(第2卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML...

    java开发实战1200例(第二卷)高清PDF

    《Java开发实战1200例(第2卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML...

    Java开发实战1200例第1卷.pdf.part3

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    java从入门到精通70个PPT

    javaPPT 从入门到精通 从基础到框架 70个PPT 1.初识java 2.变量、数据类型和运算符和表达式 3运算符和程序流程结构 4.数组 5.类和对象 6.字符串 ...69 在线培训:JFreeChart 70 指导学习:课程总复习

    Java.Web整合开发王者归来.part1(共3部分)

    第8 篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版 本管理工具SVN、日志工具commo-logging与Log4J、报表图形引擎 JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系 统:...

    Java.Web整合开发王者归来.part2.rar (共3部分)

    第8 篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版 本管理工具SVN、日志工具commo-logging与Log4J、报表图形引擎 JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系 统:...

    Java.Web整合开发王者归来.part3.rar (共3部分)

    第8 篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版 本管理工具SVN、日志工具commo-logging与Log4J、报表图形引擎 JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系 统:...

Global site tag (gtag.js) - Google Analytics