美丽教师进我家ed2k:JFreeChart在JSP开发中的应用心得
来源:百度文库 编辑:偶看新闻 时间:2024/05/09 08:07:58
JFreeChart在JSP开发中的应用心得
(2007-03-21 16:37:19)转载 分类:JavaJFreeChart主要是由三个类构成:
A)org.jfree.chart.servlet.ChartDeleter继承自HttpSessionBindingListen
B)org.jfree.chart.servlet.DisplayChart继承自Httpservlet 用于处理显示图象。
C)org.jfree.chart.servlet.ServletUtilities有一系列方法,例如,saveChartAs*;saveChartAs*是把图表按照不同的形式存储为图象;sendTempFile方法被重载了很多次,用于把文件流发送response。
下面以柱状图和饼图为例,介绍图形创建方法。
1 柱状图
org.jfree.chart.ChartFactory这个工厂类有createBarChart、createStackedBarChart、createBarChart3D、createStackedBarChart3D,这几个工厂方法创建不同类型的柱状图,比较重要的是 PlotOrientation.VERTICAL 让平行柱垂直显示,而 PlotOrientation.HORIZONTAL 则让平行柱水平显示。对柱状图影响较大的几个类包括:org.jfree.chart.axis.CategoryAxis、org.jfree.chart.axis.ValueAxis、org.jfree.chart.renderer.BarRenderer、org.jfree.chart.renderer. BarRenderer3D。
具体实现步骤:
1)创建用于图形生成所要的数据集对象。
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
其中:rowKeys表示X轴数据,columnKeys表示Y轴数据,data表示填充柱状图所要的实际数据(来自于数据库)。
2)创建图形对象。
JFreeChart chart = ChartFactory.createBarChart3D("标题", null,null,dataset,PlotOrientation.VERTICAL,,true,false,false);
createBarChart3D方法是ChartFactory工厂类里的一个方法,用于3D柱状图的生成,该类继承自JFreeChart。其中的八个参数分别代表:图形的标题、X轴标题、Y轴标题、dataset就是CategoryDataset类的实例对象、显示标题、启用热键、启用超键接。
3)设置图形显示的属性。
a ) ValueAxis类,设置柱到图上下边的距离。实现方法是:
ValueAxis rangeAxis = plot.getRangeAxis();
设置最高的一个柱与图片顶端的距离:
rangeAxis.setUpperMargin(0.15)
设置最低的一个柱与图片底端的距离:
rangeAxis.setLowerMargin(0.15)
b)org.jfree.chart.renderer.BarRenderer3D类,设置图形上显示的数值。实现方法如下:
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
设置 Wall 的颜色:
renderer.setWallPaint(Color.gray);
设置每个柱的颜色:
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(0, 100, 255));
renderer.setSeriesPaint(2, Color.GREEN);
设置每个柱的 Outline 颜色
renderer.setSeriesOutlinePaint(0, Color.BLACK);
renderer.setSeriesOutlinePaint(1, Color.BLACK);
renderer.setSeriesOutlinePaint(2, Color.BLACK);
设置每个地区所包含的平行柱之间的距离
renderer.setItemMargin(0.1);
显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabe
renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
renderer.setItemLabelsVisible(true);
为图形加入超连接
renderer.setItemURLGenerator(new StandardCategoryURLGener
renderer.setToolTipGenerator(new StandardCategoryToolTipG
2 饼图
org.jfree.chart.plot包,包含创建饼形图的所有方法和属性。
笔者根据业务需求创建了setURLGenerator(PieURLGenerator generator)方法,在图片上建立连接,就是图片不同部分连接不同的资源。
setSectionLabelType(int type)方法:
指定 section 标签的类型,共有 7 种类型。如果不指定,默认是 NAME_LABELS,其中类型分别是:
PiePlot.NO_LABELS
PiePlot.NAME_LABELS
PiePlot.VALUE_LABELS
PiePlot.PERCENT_LABELS 、PiePlot.NAME_AND_VALUE_LABELS、PiePlot. NAME_AND_PERCENT_LABELS、PiePlot.VALUE_AND_PERCENT_LABELS。
setDefaultOutlinePaint(java.awt.Paint paint)方法,指定 section 轮廓线的颜色,如果不指定,默认值为NULL。
setDefaultOutlineStroke(java.awt.Stroke stroke)方法,指定 section 轮廓线的厚度。
setRadius(double percent) 和 setExplodePercent(int section, double percent)方法,抽离 section,就是把某一section从饼形图剥离出来,需要两个方法一起使用。
setStartAngle(double angle)方法,设置第一个section开始位置,默认从12点钟方向开始。
setPaint(int section, java.awt.Paint paint)方法指定section的颜色。
setDirection(int direction)方法指定section顺序,默认是顺时针方向。顺时针:PiePlot.CLOCKWISE;逆时针:PiePlot.ANTICLOCKWISE。
具体实现步骤:
1)创建用于图形生成所要的数据集对象。
首先实例化类DefaultPieDataset dataset = new DefaultPieDataset()。然后利用DefaultPieDataset类提供的setValue(value1,value2)方法,把从数据库里提取的数据存入DefaultPieDataset对象。其中value1是数据名称、value2是数据值。
2)创建图形对象。
首先实例化JFreeChart chart = ChartFactory.createPieChart3D(title, dataset, true, true, false)createPieChart3D方法是用于饼图生成的主要方法。其中title代表图形的标题、dataset就是DefaultPieDataset对象的实例。
3)设置图形显示的属性。
String filename = ServletUtilities.saveChartAsPNG(jFreeChart, 700, 450, info, session);
ChartUtilities.writeImageMap(pw, filename, info);
pw.flush()
saveChartAsPNG方法在ServletUtilities工厂类定义完成。主要用于把图形对象JFreeChart以图片的形式保存。其中的jFreeChart就是JFreeChart对象的实例。该方法返回一个文件名。
writeImageMap(pw, filename, info)方法用于把保存的图片文件以字节流的形式写入用户界面。
其中pw是java.io包的PrintWriter类的实例对象,该对象创建一个图形输出流。Filename是输出图片的文件名。该文件名来自ServletUtilities.saveChartAsPNG方法创建。
参数info用于图形信息的显示。
用ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection
最后输出完成图形,调用pw.flush()方法关闭IO流。
servlet 在JSP开发过程中的地位如何
jsp和j2ee在网站开发中的区别是什么?
请问在jsp中差入股票的曲线图用什么办法好?不要用jfreechart
jfreechart-1.0.1配置/曲线图在jsp中实现的实例?
DNA技术在石油勘探开发中的应用方面能行么?
跪求 《JSP开发应用详解》第二版 电子版
请问哪《JSP应用开发详解(第二版)》 电子版下载
我想用JSP开发一个动态网站,在Dreamweaver中的主页怎样和JBuilder中的代码联接起来啊?
嵌入式系统的结构与开发--在无线局域网中的应用
嵌入式系统的结构与开发(在无线局域网中的应用)
管理信息系统开发怎么进行可行性分析?管理信息系统需要哪些支撑技术,在管理信息系统应用中的作用?
请教最新的JSP应用开发详解的书号。有知道的告诉我。。。
ASP和JSP在网站开发方面,哪个更好些?!
myeclipse开发jsp
怎样用JBuilder开发JSP
GPSONE在EVC中的开发
求救JASPERREPORT应用在JSP中生成HTML问题
JFreeChart生成图中的中文是小方块怎么解决
jsp在运行javabean中的错误
远程教育在计算机中的应用
树木在园林中的应用
概率在财务管理中的应用
ERP在企业管理中的应用
计算机在材料科学中的应用