Struts2结合JFreeChart
来源:互联网 发布:linuxmint ubuntu 编辑:程序博客网 时间:2024/05/01 14:09
18.3.1构建结合环境
有了前面的基础,接下来可以来把Struts2与JFreeChart结合使用了。
先来构建结合开发的环境,很简单,只有一步工作,把struts2-jfreechart-plugin-2.1.8.1.jar拷入到web工程的lib下就可以了。
18.3.2 Struts2结合JFreeChart来画饼图
1:实现Action
JFreeChart作为一种结果类型,可以作为某个Action的Result。接下来就来编写一个Action,结合着JFreeChart来实现画饼图。
编写这种Action和编写普通的Action大大的不同。这种Action不需要execute方法,而是需要一个getChart方法,这个方法必须是公有的,且返回一个JFreeChart对象。
示例代码如下:
- public class PieAction extends ActionSupport {
- private static final Font font = new Font("simsun",Font.ITALIC,22);
- private static DefaultPieDataset getDataset(){
- DefaultPieDataset dataset = new DefaultPieDataset();
- dataset.setValue("本科生", 50);
- dataset.setValue("研究生", 30);
- dataset.setValue("博士", 20);
- return dataset;
- }
- public JFreeChart getChart(){
- final DefaultPieDataset dataset = getDataset();
- JFreeChart chart = ChartFactory.createPieChart("XX公司员工学历比例图",
- dataset,
- true,//是否有标题
- false,//是否有悬浮提示
- false//是否有连接
- );
- chart.setTitle(new TextTitle("XX公司员工学历比例图",font));
- //重新设置图例的字体,保证汉字的显示
- LegendTitle legend = chart.getLegend();
- legend.setItemFont(font);
- //重新设置统计表对象的字体,保证汉字的显示
- PiePlot plot = (PiePlot) chart.getPlot();
- plot.setBackgroundAlpha(0.9f);
- plot.setLabelFont(font);
- return chart;
- }
- }
观察上面的两个方法getDataset和getChart,其实现方式和前面在Java中使用JFreeChart来画饼图的实现是一模一样的。仍然是getDataset方法提供饼形图要显示的数据,getChart方法用来设置饼形图的相关信息(如图例的字体,标题的字体等等)。
2:配置struts.xml
接下来看看在struts.xml中,Struts2是如何跟JFreeChart结合的,示例代码如下:
- <package name="helloworld" extends="jfreechart-default">
- <action name="jfreechartAction" class="cn.javass.chart.PieAction">
- <result type="chart">
- <param name="width">400</param>
- <param name="height">300</param>
- </result>
- </action>
- </package>
在配置文件中,我们的包继承了jfreechart-default包;在我们的包中使用了jfreechart-default包中的chart这种<result-type>;然后通过给<result>元素设置<param>子元素来限定图形化报表的宽和高。
3:运行测试一下
在IE浏览器中输入http://localhost:9080/helloworld/jfreechartAction.action,可以看到结果,如下图所示:
图18.4 使用Struts2与JFreeChart结合画出的饼图
18.3.3 Struts2结合JFreeChart来画柱状图
1:实现Action
跟上面Struts2结合JFreeChart来画饼图的过程类似,都是不需要execute方法的,都需要一个getChart方法,这个方法必须是公有的,且返回一个JFreeChart对象。
示例代码如下:
- public class BarAction extends ActionSupport {
- private static final Font font = new Font("simsun",Font.ITALIC,22);
- private static DefaultCategoryDataset getDataset(){
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- dataset.setValue(50,"本科生","本科生");
- dataset.setValue(30,"研究生","研究生");
- dataset.setValue(20,"博士","博士");
- return dataset;
- }
- public JFreeChart getChart(){
- final DefaultCategoryDataset dataset = getDataset();
- JFreeChart chart = ChartFactory.createBarChart3D("XX公司员工学历比例图","学历","人数",
- dataset,
- PlotOrientation.VERTICAL,
- true,
- false,
- false
- );
- chart.setTitle(new TextTitle("XX公司员工学历比例图",font));
- //重新设置图例的字体,保证汉字的显示
- LegendTitle legend = chart.getLegend();
- legend.setItemFont(font);
- //设置X轴坐标上的文字的字体
- chart.getCategoryPlot().getDomainAxis().setTickLabelFont(font);
- //设置X轴坐标标题的字体
- chart.getCategoryPlot().getDomainAxis().setLabelFont(font);
- //设置Y轴坐标上的文字的字体
- chart.getCategoryPlot().getRangeAxis().setTickLabelFont(font);
- //设置Y轴坐标标题的字体
- chart.getCategoryPlot().getRangeAxis().setLabelFont(font);
- return chart;
- }
- }
观察上面的两个方法getDataset和getChart,其实现方式和前面在Java中使用JFreeChart来画柱状图的实现是一模一样的。仍然是getDataset方法提供饼形图要显示的数据,getChart方法用来设置饼形图的相关信息(如图例的字体,标题的字体等等)。
2:配置struts.xml
struts.xml中的配置和上面画饼图的方式也是一样的,示例代码如下:
- <package name="helloworld" extends="jfreechart-default">
- <action name="jfreechartAction" class="cn.javass.chart.BarAction">
- <result type="chart">
- <param name="width">400</param>
- <param name="height">300</param>
- </result>
- </action>
- </package>
3:运行测试一下
在IE浏览器中输入http://localhost:9080/helloworld/jfreechartAction.action,可以看到结果,如下图所示:
图18.5 使用Struts2与JFreeChart结合画出的柱状图
- Struts2结合JFreeChart
- struts2 结合JFreeChart
- jfreechart与struts2结合
- 结合JFreeChart 之 18.3 Struts2结合JFreeChart
- Struts2与JFreeChart的结合
- jfreechart和struts2,spring结合使用
- 结合JFreeChart 之 18.2 Struts2插件概述
- Struts2结合Jfreechart实现数据报表统计
- Struts2结合Jfreechart实现数据报表统计
- jfreechart struts2
- Struts2+JFreeChart
- Struts2+JFreeChart
- JFreeChart之饼图、柱状图和折线图(结合struts2)
- 结合JFreeChart 之 18.1 JFreeChart使用
- Struts2整合JFreeChart图表
- struts2整合jfreechart
- Struts2.1之Jfreechart
- Struts2-整合JFreeChart
- android游戏开发系列(2)——背景音乐播放技术
- 找出数组中唯一出现k次的元素x
- CDC和HDC的区别与转换
- 尊重
- THINKPAD F1-F12键盘属性更改
- Struts2结合JFreeChart
- 黑洞数算法
- java中的异常(详解)
- 思科路由器配置enable password
- 如何使用正交排列法设计测试用例
- 求指点一二!
- 二维数组及指针
- 开启我的CSDN之旅!
- java基础入门----多线程1