jfreechart 整合sturts2牛刀小试
一.增加的jar包
- struts2-jfreechart-plugin-2.1.6.jar 在struts2的相应jar包中找
- jcommon-1.0.23.jar 在jfreechart官网中找
- jfreechart-1.0.19.jar 在jfreechart官网中找
jfreechart 的相应jar包地址:http://pan.baidu.com/s/1gfygIob
相应的jsp页面:
<img src="${pageContext.request.contextPath}/jfreechart.action?id=<s:property value="vote.id"/>" />
相应的struts.xml配置:(需要注意的是头文件要改下从箭头中的xml中引入
<package name="jfreechart" extends="jfreechart-default" namespace="/">
<action name="jfreechart" class="jfreeChartAction">
<result name="success" type="chart">
<param name="width">700</param>
<param name="height">250</param>
</result>
</action>
</package>
相应的action:
package action; import java.util.List; import jfreechart.JfreeChartService; import org.apache.struts2.ServletActionContext;
import org.jfree.chart.JFreeChart; import service.SelectionService;
import service.VoteService;
import vo.Selection; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings ( "serial" )
public class JfreeCharAction extends ActionSupport { /**
* 定 义JFreeChart对象注意在这里JFreeChart对象名只能为chart
* http://struts.apache.org/2.x/docs/jfreechart-plugin.html
*/
private JFreeChart chart; public JFreeChart getChart() {
return chart;
}
public void setChart(JFreeChart chart) {
this .chart = chart;
} private VoteService voteService ;
private SelectionService selectionService ; public void setVoteService(VoteService voteService) {
this.voteService = voteService;
}
public void setSelectionService(SelectionService selectionService) {
this.selectionService = selectionService;
} private JfreeChartService jfreeChartService ;
public void setJfreeChartService(JfreeChartService jfreeChartService) {
this.jfreeChartService = jfreeChartService;
} private List<Selection> select_list ; @Override
public String execute() throws Exception {
Integer id = Integer.valueOf(ServletActionContext.getRequest()
.getParameter("id"));
select_list = selectionService.find(id);
this .chart = jfreeChartService.getChart(select_list);
return SUCCESS;
}
}
相应的service:
这里的注意点是很容易出现乱码,改下font就ok
package jfreechart; import java.awt.Color;
import java.awt.Font;
import java.util.List; import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.TextAnchor; import vo.Selection; public class JfreeChartService { public JFreeChart getChart(List<Selection> select_list){ DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(int i = 0 ; i < select_list.size() ; i ++){ dataset.addValue(select_list.get(i).getNumber(),select_list.get(i).getIndex_()+"",select_list.get(i).getContent());
}
JFreeChart chart = ChartFactory.createBarChart("投票结果图",
"选项",
"票数(个)",
dataset,
PlotOrientation.HORIZONTAL,
false,
false,
false); CategoryPlot plot = chart.getCategoryPlot();
//设置网格背景颜色
plot.setBackgroundPaint(Color.white);
//设置网格竖线颜色
plot.setDomainGridlinePaint(Color.pink);
//设置网格横线颜色
plot.setRangeGridlinePaint(Color.pink); //显示每个柱的数值,并修改该数值的字体属性
BarRenderer renderer = new BarRenderer();
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true); //默认的数字显示在柱子中,通过如下两句可调整数字的显示
//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3, TextAnchor.BASELINE_RIGHT));
renderer.setItemLabelAnchorOffset(20D);
plot.setRenderer(renderer); //下面这段是防止出现乱码的
Font font = new Font("宋体", Font.ITALIC, 12);
CategoryAxis domainAxis = plot.getDomainAxis();//(柱状图的x轴)
domainAxis.setTickLabelFont(font);//设置x轴坐标上的字体
domainAxis.setLabelFont(font);//设置x轴上的标题的字体
ValueAxis valueAxis = plot.getRangeAxis();//(柱状图的y轴)
valueAxis.setTickLabelFont(font);//设置y轴坐标上的字体
valueAxis.setLabelFont(font);//设置y轴坐标上的标题的字体
chart.getTitle().setFont(font);
return chart ;
} }
最后效果是:
jfreechart 整合sturts2牛刀小试的更多相关文章
- 【Java EE 学习 74 下】【数据采集系统第六天】【使用Jfreechart的统计图实现】【将JFreechart整合到项目中】
之前说了JFreechart的基本使用方法,包括生成饼图.柱状统计图和折线统计图的方法.现在需要将其整合到数据采集系统中根据调查结果生成三种不同的统计图. 一.统计模型的分析和设计 实现统计图显示的流 ...
- struts2整合JFreechart 饼图、折线图、柱形图
struts2整合JFreechart 饼图.折线图.柱形图 上效果图: 当然可以将数据导出图片格式存储.具体下的链接里的文件有保存成图片的操作. 因为是strust2整合JFreechart,所以s ...
- [六]JFreeChart实践五之与Struts2整合
1.Action,返回Chart package com.java1234.chart.bar; import java.awt.Color; import org.jfree.chart.Chart ...
- struts2整合jfreechart
需要的包: struts2-jfreechart-plugin-2.2.1.1.jar jfreechart-1.0.13.jar jcommon-1.0.17.jar 前台jsp页面中可以使用ifr ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试
承接上文,该篇即为项目整合的介绍了. 废话不多说,先把源码和项目地址放上来,重点要写在前面. github地址为ssm-demo 你也可以先体验一下实际效果,点击这里就行啦 账号:admin 密码:1 ...
- Spring+SpringMVC+MyBatis整合基础篇(二)牛刀小试
前言 承接上文,该篇即为项目整合的介绍了. 废话不多说,先把源码和项目地址放上来,重点要写在前面. 项目展示地址,点这里http://ssm-demo.13blog.site,账号:admin 密码: ...
- java项目中显示图表:struts2整合jfreechart
需要的包: struts2-jfreechart-plugin-2.2.1.1.jar jfreechart-1.0.13.jar jcommon-1.0.17.jar 前台jsp页面中可以使用ifr ...
- (五)sturts2+spring整合
一.Spring与Struts的整合 1.1:加入Spring的jar包.1.2:加入Struts的jar包.1.3:加入Struts与Spring的整合jar//struts2-spring-plu ...
- JFreeChart与struts2整合实例
1. 3个jar包 jcommon,jfreechart,strust2-jfreechart-plugin 2 <?xml version="1.0" encoding=& ...
随机推荐
- C#中如何定义全局变量及在各窗体中使用全局变量
using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; us ...
- JVM 垃圾回收器工作原理及使用实例介绍(转载自IBM),直接复制粘贴,需要原文戳链接
原文 https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/ 再插一个关于线程和进程上下文,待判断 http://b ...
- selenium+phantomjs爬取动态页面数据
1.安装selenium pip/pip3 install selenium 注意依赖关系 2.phantomjs for windows 下载地址:http://phantomjs.org/down ...
- Myeclispe 安装 SVN :
Myeclispe 安装 SVN :解压 : site-1.8.22.zip 放入如下路径下即可 :
- WEB框架
WEB框架本质 一.WEB请求流程 所有的web应用,都 ...
- 设置centos7默认运行级别
1.查看当前运行级别 systemctl get-default 2.设置命令行运行级别 systemctl set-default multi-user.target 3.设置图形化运行级别 sys ...
- Linux下如何查看系统启动时间和运行时间
1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.002.查看/proc/uptime文件计算系 ...
- MySQL root密码找回
以MySQL多实例为例,演示找回MySQL root的密码 1.关闭mysql服务 [root@mysql ~]# mysqladmin -uroot -poldboy123 -S /data/330 ...
- [转载] Android动态加载Dex机制解析
本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java ...
- 可以让电脑卡机的c++程序
#include <iostream> #include<windows.h> #include <shellapi.h> #include <stdio.h ...