【Jsp精品源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了Jsp精品源码-jsp教程用JFreeChart增强JSP报表的用户体验 - 软件工程的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
jsp 教程用 JFreeChart 增强
JSP 报表的用户体验发布时间:2009-8-31 10:55:08 来源:厂商在线-软件直销网信息中心 点击进 入论坛
jsp 教程用 JFreeChart 增强
JSP 报表的用户体验JFreeChart 是一组功能强大、灵活易用的 Java 绘图 API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。
它能够用在 Swing 和 Web 等中制作自定义的图表或报表,并且得到广泛的应用。
本文将通过引领读者学习在JFreeChart 中饼图、柱状图和曲线图的进阶应用,来达到熟练使用 JFreeChart 的目的。
一. 下载与环境配置1. 下载 JFreeChartJFreeChart 是开放源代码的免费软件,但是它的支持文档需要付费才能得到。
其下载地址为:http://sourceforge.net/project/showfiles.phpgroup_id15494,当前最新版本为 1.0.6。
笔者下载的是 1.0.6 最新版。
说明:1)source 目录:为 jfreechart 的
源码目录; 2)lib 目录:为包目录,我们需要关注的包为 jfreechart-1.0.6.jar、gnujaxp.jar 和 jcommon-1.0.10.jar 这三个包; 3)根目录下的 jfreechart-1.0.6-demo.jar 是例子程序,大家双击后可看到其中有很多例子的运行结果。
2. 环境配置 笔者的开发环境如下: JDK:1.5MyEclipse:5.1.1 GATomcat:5.5.28为了后续的“用 JFreeChart 创建基于 Web 的图表”的一个例子的展示,我们在MyEclipse 中创建一个名为 jfreechart 的 Web 工程。
将下载的 JFreeChart1.0.6 下lib 目录下的 jar 包拷贝到 WebRoot/WEB-INF/lib 目录下。
另外还需要在 web.xml 文件中增加如下配置:DisplayChartorg.jfree.chart.servlet.DisplayChartDisplayChart/DisplayChart二. 柱状图在 WebRoot 目录下建立 bar 目录,用来存放柱状图的各个例子。
首先在该目录下建立一个 sample1.
jsp 文件,让我们来看一个简单的柱状图的例子,修改后的 sample1.
jsp的内容如下所示:在浏览器中输入地址:http://localhost:8080/jfreechart/bar/sample1.
jsp,可看到如下柱状图: 上面的这个柱状图比较简单,稍显单调,在有些情况下,我们需要用不同颜色来表示不同的种类,或者在种类上标上具体数值,亦或需要加上 3D 水晶效果。
下面让我们来做更深一步的探讨。
接下来让我们看一个用不同颜色来表示不通种类的例子。
在 WebRoot 的 bar 目录下新建 sample2.
jsp 页面,将其代码修改如下: 该页面的运行效果如下图所示: 对比该例与前例,可看出 createBarChart3D 的倒数第三个参数修改成了 true,该参数可用来显示下方的: 。
上两例我们显示的只是一个城市的肉类销量,有时候我们有对比显示多个城市的不同肉类,只要将上例稍作修改即可。
例如要在图中表示广州、深圳、东莞、佛山四个城市的四个肉类的销售情况,只需要将如下三句稍做修改:double data new double 1310 720 1130 440String rowKeys 猪肉 牛肉鸡肉 鱼肉String columnKeys 例如修改成:double data new double 1310 1220 1110 1000720 700 680 6401130 1020 980 800440 400 360 300String rowKeys 猪肉 牛肉鸡肉 鱼肉String columnKeys 广州 深圳 东莞 佛山 在运行该
jsp 页面,可看到如下界面: 在上述几例中,在某个柱子上都没有显示相应的数值,下面让我们为每个柱子都加上它的数值,我们新建一个 sample4.
jsp 页面,其内容如下:运行效果如下所示:注意:jfreechart 的很多版本不兼容,请大家在运行此例时确认下载了对应的版本。
三. 饼图在 WebRoot 目录下建立名为 pie 的子目录,用来存放本教程中饼图的实例
jsp 页面。
下面让我们来看一个简单的三维饼图。
首先在 pie 目录下建立一个名为 sample1.
jsp的页面。
在 JFreeChart 中,与饼图绘制密切相关的类如下:1) PiePlot饼图绘制类,可以用来设置饼图的相关属性。
例如:PiePlot pieplot PiePlotjfreechart.getPlotpieplot.setLabelFontnew FontSansSerif 0 12pieplot.setNoDataMessageNo data availablepieplot.setCircularfalsepieplot.setLabelGap0.02D2) DefaultPieDataset默认的饼图数据集类,用来存储饼图显示的相关数据信息。
例如:DefaultPieDataset dataset new DefaultPieDatasetdataset.setValue品德 new Double0.2Ddataset.setValue体育 new Double0.2Ddataset.setValue音乐 new Double0.2Ddataset.setValue其余成绩 new Double0.4D3) ChartFactory可利用该制图工厂类 createPieChart 来创建一个饼图的 JFreeChart 对象,例如:JFreeChart jfreechart ChartFactory.createPieChart饼图示例 datasettrue true false 下面让我们看一个简单的例子,修改 sample1.
jsp 的内容如下: 可以看出,饼图的绘制与柱状图的绘制类似,该例的运行效果如下:有时候我们还想知道某块所占的具体分值,或者需要突出显示某一块。
这时候需要对上例进行部分修改:dataset.setValue其他 0.2后的那段改成://通过工厂类生成 JFreeChart 对象JFreeChart chart ChartFactory.createPieChart3DIT 行业职业分布图dataset true false falsePiePlot pieplot PiePlot chart.getPlotpieplot.setLabelFontnew Font宋体 0 12//没有数据的时候显示的内容pieplot.setNoDataMessage无数据显示pieplot.setCircularfalsesetExplodePercent 方法很重要,它将 Label 为某名称的某块挖出来突出显示,而后两句实现的效果是在“初中高级程序员”等名称后加上百分比,改成“初中高级程序员55”等。
加上如上的代码后,同时还需要将相关的两个 java 包:org.jfree.chart.labels.StandardPieSectionLabelGenerator 和java.text.NumberFormat 引入到该
jsp 页面中。
此时的运行结果如下: 通过 JFreeChart 还可以提供漂亮的水晶饼图效果,接着让我们新建一个 sample3.
jsp页面来体验一下超炫美图吧。
修改 sample3.
jsp 页面如下: 利用 setForegroundAlpha方法可以设置 3D 饼图的透明度,利用setStartAngle可以设置其开始角度,利用 setDirection方法可以设置其方向。
该例的运行效果如下图所示: