S2SH jFreeChart 制作柱状图和饼图
来源:互联网 发布:局部搜索算法有哪些 编辑:程序博客网 时间:2024/05/01 17:05
除了ssh必须的包之外,还需要导入以下3个包:
jfreechart-1.0.14.jar;
jcommon-1.0.17.jar;
struts2-jfreechart-plugin-2.2.3.1.jar;
以球类投票的方式引入柱状图和饼图。
球类类别实体代码:
public class Category {private int id; //id主键private String sportsName; //种类名称private int num; //投票数目public int getId() {return id;}public void setId(int id) {this.id = id;}public String getSportsName() {return sportsName;}public void setSportsName(String sportsName) {this.sportsName = sportsName;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}
投票页面jsp代码:
<form action="jFreeChartTest1.action" method="post"><input type="checkbox" name="sportsName" value="篮球">篮球<br><input type="checkbox" name="sportsName" value="足球">足球<br><input type="checkbox" name="sportsName" value="排球">排球<br><input type="checkbox" name="sportsName" value="网球">网球<br><input type="submit" value="投票"></form>
投票action代码:
public String jFreeChartTest1() { String[] sports = ServletActionContext.getRequest().getParameterValues("sportsName"); if(sports != null) { for(int i=0; i<sports.length; i++) { category = new Category(); category = service.getCategoryByName(sports[i]); //获得对应的实体 category.setNum(category.getNum() + 1); //投票数+1 service.updateCategory(category); //更新 } } return "success"; }
投票struts.xml代码:
<action name="jFreeChartTest1" class="jFreeChartAction" method="jFreeChartTest1"><result name="success">/showChart.jsp</result></action>
图表显示页面showChart.jsp代码:
<img alt="xxx" src="jFreeChartTest2.action">
图表显示action代码:
private JFreeChart chart; //取JFreeChart对象,名字必须为chart public JFreeChart getChart() { return chart; } public void setChart(JFreeChart chart) { this.chart = chart; }
/** * 解决乱码,但是一定要在生成图形之前调用 */ public void setCharacter() { // 创建主题样式 StandardChartTheme standardChartTheme = new StandardChartTheme("CN"); // 设置标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 12)); // 设置图例的字体 standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 12)); // 设置轴向的字体 standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 12)); // 应用主题样式 ChartFactory.setChartTheme(standardChartTheme); }
1.柱状图:
public String jFreeChartTest2() { setCharacter(); //解决中文乱码 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.setValue(service.getCategoryByName("篮球").getNum(), "", "篮球"); dataset.setValue(service.getCategoryByName("足球").getNum(), "", "足球"); dataset.setValue(service.getCategoryByName("排球").getNum(), "", "排球"); dataset.setValue(service.getCategoryByName("网球").getNum(), "", "网球"); chart = ChartFactory.createBarChart3D( "球类爱好图", // 图表标题 "球类", // 目录轴的显示标签 "喜爱人数", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是 false) false, // 是否生成工具 false // 是否生成 URL 链接 ); return "success";}
2.饼图:
public String jFreeChartTest2() { setCharacter(); DefaultPieDataset dataPieSet = new DefaultPieDataset(); dataPieSet.setValue("篮球", service.getCategoryByName("篮球").getNum()); dataPieSet.setValue("足球", service.getCategoryByName("足球").getNum()); dataPieSet.setValue("排球", service.getCategoryByName("排球").getNum()); dataPieSet.setValue("网球", service.getCategoryByName("网球").getNum()); chart = ChartFactory.createPieChart3D("球类爱好图", dataPieSet, true, true, false);PiePlot3D piePlot = (PiePlot3D)chart.getPlot();piePlot.setBackgroundPaint(Color.WHITE);piePlot.setLabelFont(new Font("黑体",Font.BOLD,15));resetPlot(piePlot);return "success";} //给饼图添加样式 private static void resetPlot(PiePlot3D pieplot){ String unitStyle = "{0}={1}({2})"; pieplot.setNoDataMessage("没有对应的数据,请重新查询"); pieplot.setNoDataMessageFont(new Font("华文行楷",Font.BOLD,21)); pieplot.setNoDataMessagePaint(Color.BLUE); //设置图例显示样式 pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator( unitStyle, NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")) ); //设置引用标签显示样式 pieplot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator( unitStyle, NumberFormat.getNumberInstance(), new DecimalFormat("0.00%"))); }
图表显示struts.xml代码:
注意:package要继承jfreechart-default
<package name="default" extends="struts-default,json-default,jfreechart-default">
<action name="jFreeChartTest2" class="jFreeChartAction" method="jFreeChartTest2"><result type="chart" name="success" ><param name="width">600</param><param name="height">500</param></result></action>
结束。
0 0
- S2SH jFreeChart 制作柱状图和饼图
- jfreechart饼图和柱状图ajax
- jfreechart饼图和柱状图 ajax
- 使用JFreeChart生成柱状图和饼图
- 【JSP中使用Jfreechart绘制折线、饼图和柱状图】
- 【JSP中使用Jfreechart绘制折线、饼图和柱状图】
- jfreechartDemo--使用jfreechart制作柱状图
- JFreeChart 制作柱状图分析数据
- jfreeChart 柱状图和折线图结合
- jfreechart柱状图+折线图
- jfreechart之在swt和jsp页面绘制饼图、柱状图、时间序列图
- JFreeChart之饼图、柱状图和折线图(结合struts2)
- 用JFreeChart来创建一个图表(饼图和柱状图,swn方式)
- 【知了堂学习笔记】jfreechart创建简单的柱状图和饼图
- Jfreechart生成折线图和柱状图混合图
- jfreechart实例(2) 线形图和柱状图同时显示
- jfreechart实例 线形图和柱状图同时显示
- JFreeChart展示柱状图和折线图的组合
- Xcode里-ObjC, -all_load, -force_load
- VR, AR等学习资源
- EDB数据库创建流程指南
- nyoj714 Card Trick(第六届河南省程序设计大赛)
- 在陌生Linux环境查看Tomcat服务的方法
- S2SH jFreeChart 制作柱状图和饼图
- oracle 当前日期的前一年的日期
- 近期网友遇到的一些问题,整理出来 大家可以学习 交流 MySQL问题及解答
- MySQL SQL Error Code : 1175 , 1093 解决方案
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- java http get post 各种请求,模拟浏览器请求
- Versions使用心得
- Android图片缓存技术!直接用在你的项目中,简单方便高效
- C++中的dynamic_cast 操作符