JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。如此好用的东西,我就想试一把。
1、去JFreeChart官网上下载jfreechart-1.0.14包,解压缩后找到lib目录,里面有好多jar包,其中jfreechart-1.0.14.jar、jcommon-1.0.17.jar是两个基础包必须导入到项目中去,至于网上上的gnujaxp.jar这个包,如果导入这个包的会出现文中后面说的错误。不知道为什么有些人说这个包也是必须包,我用的时候根本就没有导入这个包还不是照样用啊。
2、新建一个web工程,然后新建一个show.jsp页面,show.jsp页面的代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gbk" contentType="text/html; charset=gbk"%> <%@ page import="org.jfree.data.general.DefaultPieDataset" %> <%@ page import="org.jfree.chart.JFreeChart"%> <%@ page import="org.jfree.chart.ChartUtilities" %> <%@ page import="org.jfree.chart.plot.PiePlot"%> <%@ page import="org.jfree.chart.ChartRenderingInfo"%> <%@ page import="org.jfree.chart.servlet.ServletUtilities"%> <%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%> <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <% //创建一个数据集对象 DefaultPieDataset data = new DefaultPieDataset(); //设置数据集对象中的数据 data.setValue("六月",500); data.setValue("七月",580); data.setValue("八月",828); PiePlot plot = new PiePlot(data); //创建一个饼状图对象 JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT,plot, true); //设置报表标题 chart.setTitle("JFreeChart测试"); //可选,设置图片标题 chart.setBackgroundPaint(java.awt.Color.white); ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); //500是图片长度,300是图片高度 String filename =ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session); String url=request.getContextPath()+"/DisplayChart?filename="+filename; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>JfreeChart生成饼状图</title> </head> JfreeChart生成饼状图例子 <P ALIGN="CENTER"> <img src="<%=url%>" > </P> </body> </html>
但是很遗憾的事情是,我并没有看到我的饼状图啊!不知道为什么!我自己也在寻求高人指点。哎
文章开头说的如果导入gnujaxp.jar包出现如下错误:1、org.xml.sax.SAXParseException: URI was not reported to parser for entity [document]
2、org.xml.sax.SAXParseException: No base URI; hope URI is absolute: http://www.springframework.org/dtd/spring-beans.dtd
等等以上错误的话,果断把gnujaxp.jar包给干掉啊!干掉这个包就解决了上面的问题啊。