简化JFreeChart创建WEB图表

本文介绍了一种简化在WEB中创建图表的方法,通过封装一个抽象类WEBChart及其子类,使得图表创建过程更加简便。设计中利用了JFreeChart库,并通过特定工厂类WebChartFactory进一步简化了图表展示。
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 三.使创建WEB图表更简单 上面我们讲了在WEB中创建图表的过程,以及给出了一个例子;但我觉得这样还不够简单。如果我们把图表在WEB中显示的过程封装起来,在创建WEB图表的过程中只实现创建图表,这样使创建WEB图表的过程简化和创建一般的图表一样简单。 下面是我的设计: 设计一个WEBChart类,它是一个abstract 类,有一个abstract 方法CreateChart; 要创一个WEB图表只需要继承WEBChart类实现它的CreateChart方法; /** * Web页显示图片的基类,继承这个类,通过实现CreateChart方法产生图象; */ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.jfree.chart.servlet.ChartDeleter; import org.jfree.chart.servlet.DisplayChart; import org.jfree.chart.servlet.ServletUtilities; import org.jfree.chart.*; public abstract class WebChart { public String url = null; public WebChart(HttpServletRequest request, HttpServletResponse response, int height, int weight ) { log("web Chart Create"); url=CreateImageFile(request,response,height,weight); } /** * 方法用于获取图片文件文件名; * request,response用于传递参数,转发请求 * heith:为图片的高度 * weight:为图片的宽度 */ public String CreateImageFile(HttpServletRequest request, HttpServletResponse response, int height, int weight) { try { String filename = null; HttpSession session = request.getSession(); //Create Chart JFreeChart chart = CreateChart(request, response); filename = ServletUtilities.saveChartAsPNG(chart, height, weight, session); ServletUtilities.sendTempFile(filename, response); //log("image filename create :" filename); // return Image File name return request.getContextPath() "/servlet/DisplayChart?filename=" filename; } catch (Exception e) { // log("WebChart: " e.getMessage()); } return null; //log("ImageFactory Create"); } /** * abstract 返回一个JFreeChart对象 * request,response用于传递参数,转发请求 */ protected abstract JFreeChart CreateChart(HttpServletRequest request, HttpServletResponse response); } 设计一个WebChartFactory类,它有一个static 方法CreateImage用于创建一个WEBChart子类,返回图表图象的url; public class WebChartFactory { public WebChartFactory() { System.out.println("WebChartFactory Create"); } public static String CreateImage(WebChart webchart){ //System.out.println(webchart.getClass()); return webchart.url; } }; 在Jsp中显示图象,只需要如下处理 <img src="<%=WebChartFactory.CreateImage(new WebChartSubClass(request,response,500,300)) %>" width=500 height=300 border=0 > WebChartSubClass是WebChart的子类实现了只是实现了CreateChart方法; 文章到此,也算完结了。如果您有任何建议和疑问请写信和我联系。 Email:ugrock@sohu.com
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值