- 浏览: 342945 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zqb666kkk:
有示例代码吗
WebService CXF学习(高级篇3):WS-Security -
zhujiangtaobl0505:
楼主有源码没?发下,我邮箱465971531@qq.com,我 ...
WebService CXF学习(高级篇2):CXF+Spring+Hibernate -
ssy341:
http://localhost:8080/jforum/in ...
JForum安装详解 -
songzht:
看了上面的代码,这两个类型是怎么定义的?private Bas ...
JfreeChar结合struts2展示柱状图和饼状图(已解决乱码问题) -
Getwaysun:
持久化类中使用boolean定义某个字段后,报Null val ...
null不能赋值给int类型,Integer可以。
1.导入需要的jar包(下载见附件)
struts2-jfreechart-plugin-2.0.11.jar
jcommon-1.0.0.jar
jfreechart-1.0.14.jar
2.编写xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="AnalysisAction" > <result-types> <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"/> </result-types> <action name="getGenderBar" method="getGenderBar" class="analysisAction"> <result name="success" type="chart"> <param name="chart">chart</param> <param name="height">300</param> <param name="width">480</param> </result> </action> <action name="getGenderPie" method="getGenderPie" class="analysisAction"> <result name="success" type="chart"> <param name="chart">chart</param> <param name="height">300</param> <param name="width">480</param> </result> </action> </package> </struts>
* 注意开头部分result-type name="chart",status2的返回类型没有“char”类型,需要添加此返回类型。
3.编写生成图片的工具类BarChartUtil.java和status2的Acion
BarChartUtil.java
import java.awt.BasicStroke; import com.rlzy.basic.AnalysisInfo; public class BarChartUtil { public static CategoryDataset createBarDataset(List<AnalysisInfo> list, int type) { DefaultCategoryDataset localDefaultCategoryDataset = new DefaultCategoryDataset(); String rowkey = ""; String columnkey = ""; for (AnalysisInfo analysisInfo : list) { columnkey = AnalysisTypeConstants.getTypeName(type, analysisInfo .getType()); rowkey = columnkey; localDefaultCategoryDataset.addValue(analysisInfo.getCount(), rowkey, columnkey); } return localDefaultCategoryDataset; } public static PieDataset createPieDataset( List<AnalysisInfo> list,int type) { DefaultPieDataset localDefaultPieDataset = new DefaultPieDataset(); String key=""; for(AnalysisInfo analysisInfo:list){ key = AnalysisTypeConstants.getTypeName(type, analysisInfo.getType()); localDefaultPieDataset.setValue(key,analysisInfo.getCount()); } return localDefaultPieDataset; } public static JFreeChart createBarChart(String title, String categoryAxisLabel, String valueAxisLabel, CategoryDataset paramCategoryDataset) { // 创建主题样式 StandardChartTheme standardChartTheme = new StandardChartTheme("CN"); // 设置标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20)); // 设置图例的字体 standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 15)); // 设置轴向的字体 standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 15)); // 应用主题样式 ChartFactory.setChartTheme(standardChartTheme); JFreeChart jfreechart = ChartFactory.createBarChart3D(title, // 图表标题 categoryAxisLabel, // 目录轴的显示标签 valueAxisLabel, // 数值轴的显示标签 paramCategoryDataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) true, // 是否生成工具 true // 是否生成URL链接 ); // chart.getTitle().setFont(new Font("宋体", Font.BOLD,12)); NumberAxis axis = (NumberAxis) jfreechart.getCategoryPlot() .getRangeAxis(); axis.setTickUnit(new NumberTickUnit(5));// 0.5为一个间隔单位 Y return jfreechart; } public static JFreeChart createPaiChart(String title, PieDataset pieDataset) { // 创建主题样式 StandardChartTheme standardChartTheme = new StandardChartTheme("CN"); // 设置标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20)); // 设置图例的字体 standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 15)); // 设置轴向的字体 standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 15)); // 应用主题样式 ChartFactory.setChartTheme(standardChartTheme); JFreeChart chart = ChartFactory.createPieChart3D( title, // 图表标题 pieDataset, true, // 是否显示图例 false, false); PiePlot plot = (PiePlot) chart.getPlot(); resetPiePlot(plot); return chart; } private static void resetPiePlot(PiePlot plot) { String unitSytle = "{0}={1}({2})"; plot.setNoDataMessage("无对应的数据,请重新查询。"); plot.setNoDataMessagePaint(Color.red); // 指定 section 轮廓线的厚度(OutlinePaint不能为null) plot.setOutlineStroke(new BasicStroke(0)); // 设置第一个 section 的开始位置,默认是12点钟方向 plot.setStartAngle(90); // plot.setToolTipGenerator(new StandardPieToolTipGenerator(unitSytle, // NumberFormat.getNumberInstance(), new DecimalFormat("0.00%"))); // 指定图片的透明度 plot.setForegroundAlpha(0.65f); // 引出标签显示样式 // plot.setLabelGenerator(new StandardPieSectionLabelGenerator(unitSytle, // NumberFormat.getNumberInstance(), new DecimalFormat("0.00%"))); // 图例显示样式 plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator( unitSytle, NumberFormat.getNumberInstance(), new DecimalFormat( "0.00%"))); } }
AnalysisAction.java
public class AnalysisAction extends ActionSupport { private BasicInfo basicInfo; private BasicService basicService; private static final long serialVersionUID = 1L; private JFreeChart chart; @Override public String execute() throws Exception { return SUCCESS; } public String getGenderBar() throws Exception { List<AnalysisInfo> analysisList = basicService.getAnalysisByGender(); CategoryDataset dataset = BarChartUtil.createBarDataset(analysisList, 1); chart = BarChartUtil.createBarChart("性别统计图", "性别", "人数", dataset); return SUCCESS; } public String getGenderPie() throws Exception { List<AnalysisInfo> analysisList = basicService.getAnalysisByGender(); PieDataset dataset = BarChartUtil.createPieDataset(analysisList, 1); chart = BarChartUtil.createPaiChart("性别统计图", dataset); return SUCCESS; } public BasicService getBasicService() { return basicService; } public void setBasicService(BasicService basicService) { this.basicService = basicService; } public void setChart(JFreeChart chart) { this.chart = chart; } public JFreeChart getChart() { return chart; } }
AnalysisInfo .java
import com.rlzy.util.Util; public class AnalysisInfo { private String type; // 类型 private int count; // 个数 public AnalysisInfo(String type, int count) { super(); this.type = type; this.count = count; } public String getType() { return type; } public void setType(String type) { this.type = type; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public AnalysisInfo() { super(); } }
4.编写展示jsp页面
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>人力资源管理系统</title> <base href="<%=basePath%>"> <link href="<%=path%>/styles/sty.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="<%=path %>/js/development-bundle/jquery.js"></script> <style type="text/css"> <!-- body { background:#f2f2f2; } --> </style> </head> <script type="text/javascript"> $().ready(function() { $("#gender").change(function(){ var gender = $("#gender").val(); if(gender=="1"){ $("#genderSrc").attr("src", "getGenderBar.action") }else{ $("#genderSrc").attr("src", "getGenderPie.action"); } }); }) </script> <body> <div class=" title_ljt"> <div class=" w50 floatleft"> <div class="border"> <div class=" title9"> <div class=" title9_a"></div> <div class=" title9_b">按性别统计图示</div> <div class=" title9_c"> <select id="gender" name="gender"><option value="1">柱状图</option> <option value="2">饼状图</option> </select> </div> </div> <div class="h5"></div> <div class="w100 aligncenter"> <img id="genderSrc" src="getGenderBar.action" /> </div> <div class="h10"></div> </div> </div></div> </body> </html>
- struts2-jfreechart-plugin-2.0.11.jar (9.2 KB)
- 下载次数: 7
- jcommon-1.0.0.jar (287.6 KB)
- 下载次数: 2
- jfreechart-1.0.14.jar (1.4 MB)
- 下载次数: 2
评论
1 楼
songzht
2012-12-09
看了上面的代码,这两个类型是怎么定义的?
private BasicInfo basicInfo;
private BasicService basicService;
private BasicInfo basicInfo;
private BasicService basicService;
发表评论
-
编程精华资源大汇总
2014-04-19 18:43 752http://www.iteye.com/magazines/ ... -
PLSQL中汉字显示乱码问题
2013-04-07 16:15 0遇到问题: PLSQL中汉字显示乱码,并且SQL语句中 ... -
svnserver配置文件详解
2013-02-26 15:43 1402svnserve是SVN自带的一个轻型服务器,客户端通过使 ... -
启动tomcat报StandardServer.await: create[8005]
2013-02-19 11:15 1152启动tomcat报StandardServer. ... -
sqlserver数据库异常排查方法
2013-01-17 16:06 1732数据库系统异常是DBA经常要面临的情景,一名有一定从业经验的 ... -
js读取excel
2012-09-26 17:26 2252项目需要用到将excel中的数据导入到页面的文本框中,但并不想 ... -
sybase数据库夸平台恢复
2012-05-10 19:02 1994演示一次sybase ASE15.0.3跨平台备份恢复的过程。 ... -
sybase数据库恢复
2012-05-09 18:10 2770一、对tempdb的恢复 ... -
linux 压缩与解压 常用命令
2012-05-09 14:51 1618命令: tar 格式: tar 选项 文件目录列表 功能: ... -
linux远程上传文件及文件夹
2012-05-09 11:26 6594举例, 我要将本地文件夹/home/administrator ... -
liunx查看文件和文件夹大小
2012-05-09 11:23 1195当磁盘大小超过标准时 ... -
java里的split函数
2012-04-11 16:55 1024今天要用到split函数,对浮点数进行分割为子字符串,然后将结 ... -
java使用FTP上传下载的例子
2012-03-06 10:40 1588package mview.ftp; import ... -
linux虚拟机添加空间
2011-07-22 18:06 10691 、首先关闭虚拟机(这里如果不关闭系统,就不能增加新的硬件设 ... -
解决WebLogic启动时BEA-171522异常(启动时报classcast exception)
2011-05-10 14:28 2469如下异常: <Jul 27, 20 ... -
Enterprise Manager 无法连接到数据库实例
2011-04-26 10:26 2131登陆https://localhost:1158/em 之后, ... -
weblogic10配置线程数
2011-03-30 14:38 2523下面给介绍一下简单的调优,也是跟weblogic81不同的地方 ... -
忘记Weblogic,如何修改密码(10.3.2.0测试通过)
2011-03-29 18:09 1846忘记了weblogic server的管理员密码,可以通过如下 ... -
使用eclipse统计项目代码行数
2011-03-22 10:06 3174在eclipse中, 打开File Search对话框, ... -
如何踢掉远程连接的用户
2011-01-17 09:34 2604windows的远程桌面很方便 ...
相关推荐
在"JFreeChar图表生成柱状图和饼状图源码"的压缩包中,我们很可能找到了创建这两种图表的示例源代码。 柱状图是一种常用的数据可视化工具,它将数据的每个类别表示为一个垂直或水平的矩形条,长度表示数值大小。...
JFreeChart是一款强大的Java图形库,它允许开发者创建各种类型的统计图表,如饼图、柱状图、线图、...在实际项目中,可以结合数据库或其他数据源动态加载数据,从而生成动态图表,使数据的分析和展示更加灵活和生动。
JFreeChar 动态横向柱状图,带纵向滚动条,可根据数据自动计算滚动条长度,可自定义系统柱子颜色,定时刷新
JFreeChart 是一个开源的Java库,用于生成各种类型的图表,包括柱状图、饼图和曲线图等。它提供了一种灵活的方式来创建高质量的2D图表,可以在各种Java应用程序中使用,例如桌面应用、Web应用或者服务器端应用。下面...
jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图 直接导入eclipse 或myeclipse 即可运行,里面含有lib ,及运行详细说 如:<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts ...
结合Struts2和JFreeChart,开发者可以创建交互式、数据丰富的Web应用,将后台处理的数据以图形方式展示给用户,提升用户体验。下面我们将深入探讨如何在Struts2框架中集成JFreeChart,并通过一个实际的运行实例来...
通过以上步骤,我们就成功地使用JFreeChart创建了一个展示销售数据的柱状图。在实际项目中,可以根据需求调整数据源、图表样式以及交互功能,如添加工具提示、点击事件等。JFreeChart的强大之处在于它的灵活性,可以...
Java 实现柱状图是指使用 Java 语言创建柱状图、饼状图、曲线图等图形的一种技术。通过使用 JFreeChart 库,可以轻松地创建各种类型的图形。下面将对 Java 实现柱状图的相关知识点进行详细介绍。 1. JFreeChart 库 ...
次实例是Struts2和JFreeChar的整合,下载后解压导入到ide中,输入http://localhost:8080/Struts2_JFreeChart/jfreechart/jfreeChart.action或者...就能看到相应的效果
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的高质量图表,如柱状图、饼图、线图、散点图等,广泛应用于数据分析、报表制作和可视化应用中。在处理中文数据时,可能会遇到乱码问题,这通常与字符...
在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化中非常常见,能够同时展示两个不同数据系列的趋势和比较。 首先,让我们深入了解一下JFreeChart的基本...
而JFreeChart是一个强大的Java库,用于创建各种类型的图表,如饼图、柱状图、线图等,非常适合在Java应用中展示数据。在本项目中,我们将Struts1与JFreeChart结合,用于读取Excel数据并生成图表。 首先,我们需要...
JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,如饼状图、柱状图、曲线图等,广泛应用于数据可视化和报告生成。本资料提供的"jfreechar画图源代码"包含了作者自己编写的能运行并显示结果的...
jfreechar最新jar包 JFreeChart目前是最好的java图形解决方案,基本能够解决... (态图表,饼图(二维和三维) , 柱状图 (水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表)
JFreeChart是一款强大的Java库,用于创建各种类型的图表,如折线图、柱状图、饼图、散点图、甘特图等。这个库在IT行业中被广泛使用,特别是在需要进行数据可视化的应用程序中。它允许开发人员通过简单的API调用来...
JFreeChar 动态曲线图,定时刷新,带节点事件
在数据分析与展示领域,柱状图(Bar Chart)是一种非常常见的数据可视化工具,它能够直观地比较不同类别的数值大小,尤其适用于显示离散数据集。JFreeChart作为Java平台上的一个开源图表库,提供了丰富的API来创建...
通过以上步骤,我们可以构建一个功能完善的图表展示系统,利用 JFreeChart 的强大功能,结合 JSP、Servlet 和 DAO 设计模式,实现动态生成并展示各种类型的图表。这个示例项目是一个很好的起点,帮助开发者快速上手 ...
jfreechar 世纪应用中的线性图 jfreechar 世纪应用中的线性图 jfreechar 世纪应用中的线性图
JFreeChart是一款强大的开源Java图表库,它允许开发者创建各种复杂的图表,包括折线图、饼状图、柱状图、散点图、甘特图等多种类型。这个项目已经预置了各种图表示例,部署后可以直接运行,为用户提供直观的数据可视...