日期:2014-05-16  浏览次数:20479 次

jfreechart-1.0.13报表通过JSP页面来显示
    工作中经常遇到图形报表的问题.今天总结一下.jfreechart是一款免费开源的图形报表开发.但他的DEMO源代码和文档是收费的。所以今天把用jad反编译的代码也传上了上来与大家共享.
    jfreechart可以实现各种报表,可以在应用程序中实现,也可以以web形式实现.所以代码都是通用的.demo中的代码是桌面应用程序的,所以此处不示范.web形式的代码如下.
    在你的WEB工程里,导入以下"试验包"中的jar文件,直接复制代码就行了.我的环境是
tomcat6.0.28
jdk6.0.21
    附件中还包含了jfreechart的其他几个官方下载的相关资料,读者们自己研究.有问题可以给我留言,我会尽快给大家回复.希望对大家能有帮助.^-^
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"
	import="org.jfree.chart.*"
	import="org.jfree.chart.labels.*"
	import="org.jfree.chart.plot.*"
	import="org.jfree.chart.renderer.category.*"
	import="org.jfree.data.category.*"
	import="org.jfree.data.general.*"  
	import="java.io.*"
	import="org.jfree.chart.axis.*"
    %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
	DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
	String s = "First";
	String s1 = "Second";
	String s2 = "Third";
	String s3 = "Category 1";
	String s4 = "Category 2";
	String s5 = "Category 3";
	String s6 = "Category 4";
	String s7 = "Category 5";
    defaultcategorydataset.addValue(1.0D, s, s3);
    defaultcategorydataset.addValue(4D, s, s4);
    defaultcategorydataset.addValue(3D, s, s5);
    defaultcategorydataset.addValue(5D, s, s6);
    defaultcategorydataset.addValue(5D, s, s7);
    defaultcategorydataset.addValue(5D, s1, s3);
    defaultcategorydataset.addValue(7D, s1, s4);
    defaultcategorydataset.addValue(6D, s1, s5);
    defaultcategorydataset.addValue(8D, s1, s6);
    defaultcategorydataset.addValue(4D, s1, s7);
    defaultcategorydataset.addValue(4D, s2, s3);
    defaultcategorydataset.addValue(3D, s2, s4);
    defaultcategorydataset.addValue(2D, s2, s5);
    defaultcategorydataset.addValue(3D, s2, s6);
    defaultcategorydataset.addValue(6D, s2, s7);
    
    JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo 8", "Category", "Value", defaultcategorydataset, PlotOrientation.VERTICAL, false, true, false);
    CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
    NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
    numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    numberaxis.setUpperMargin(0.14999999999999999D);
    CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer();
    categoryitemrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
    CategoryAxis categoryaxis = categoryplot.getDomainAxis();
    categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    
	OutputStream os = response.getOutputStream();
	ChartUtilities.writeChartAsPNG(os,jfreechart, 600, 500, true, 10);
	
	os.flush();
	os.close();
	os=null;
	response.flushBuffer();
	out.clear();
	out = pageContext.pushBody();
%>
</body>
</html>
1 楼 zhoulenihao 2011-10-12  
谢谢您的资料
2 楼 ehang_neu 2012-04-01  
谢谢你的资料