- 浏览: 178267 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (104)
- JavaScript备忘 (11)
- Java编程 (23)
- struts框架 (3)
- hibernate框架 (0)
- ibatis框架 (2)
- C++编程 (2)
- 数据库 (8)
- 操作系统 (2)
- Extjs (0)
- 基于web的工作流引擎设计 (0)
- 开发异常备忘 (5)
- 项目管理工具 (6)
- Spring框架 (3)
- HTML (1)
- 项目架构 (1)
- 备忘 (20)
- 设计模式 (9)
- Disruptor (0)
- CQRS (0)
- DDD (0)
- Axon (0)
- JavaScript (1)
- 微信 (0)
- 新浪微博 (1)
- 软件备份 (2)
- AngularJS (1)
- 安全性 (1)
- Linux (2)
- 工具 (4)
- OSGI (1)
- idea (2)
- Docker (1)
- 测试相关 (0)
- WebService (1)
- 数据安全 (0)
- 移动开发 (0)
- springboot (1)
最新评论
-
larryscale:
zz_wangyuhoho 写道你这个工程跑不起来呀我测试过的 ...
Springmvc3+Spring3+MyBatis3 -
zz_wangyuhoho:
你这个工程跑不起来呀
Springmvc3+Spring3+MyBatis3 -
aeolusj:
var myAlert=alert;改为var myAlert ...
js 拦截alert对话框 -
skcks:
建行内部开发平台也是做了一个类似的封装用于ajax远程调用服务 ...
通用Ajax设计 -
qiuyu1990:
这个应该是 DWR的原理吧
通用Ajax设计
JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图 (Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式 的输出,还可以与PDF和EXCEL关联。
JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求。
今天给大家介绍一下如何在一个頁面中嵌入一个带热点的饼状图.如下图所示:
完整范例如下:
1. 在SSH框架中添加Jfreechart 所依賴的Jar包:jfreechart-1.0.9.jar和 jcommon-1.0.12.jar
2. 在Action 創建一個餅狀圖的DataSet對象,用來保存從數據庫讀取的數據.
package com.crms.web.dwr; import java.util.List; import org.jfree.data.general.DefaultPieDataset; import com.crms.biz.StatisticsBiz; import com.crms.pojo.Customerinfo; import com.crms.pojo.msms.Orderdetail; import com.crms.pojo.msms.Orders; import com.opensymphony.xwork2.ActionSupport; /** * 统计报表模块 * * @author Liyongbin * @date 2010-01-15 * */ public class StatisticsAction extends ActionSupport { private static final long serialVersionUID = -9195275764281964720L; private StatisticsBiz statisticsBiz; private List<Orderdetail> orderdetailList; private Customerinfo customerinfo; // 饼状图数据对象 private DefaultPieDataset pieDataSet = new DefaultPieDataset(); public StatisticsBiz getStatisticsBiz() { return statisticsBiz; } public void setStatisticsBiz(StatisticsBiz statisticsBiz) { this.statisticsBiz = statisticsBiz; } public List<Orderdetail> getOrderdetailList() { return orderdetailList; } public void setOrderdetailList(List<Orderdetail> orderdetailList) { this.orderdetailList = orderdetailList; } public Customerinfo getCustomerinfo() { return customerinfo; } public void setCustomerinfo(Customerinfo customerinfo) { this.customerinfo = customerinfo; } public DefaultPieDataset getPieDataSet() { return pieDataSet; } public void setPieDataSet(DefaultPieDataset pieDataSet) { this.pieDataSet = pieDataSet; } /** * 贡献分析--查询所有记录 */ public String queryOfferUp() { /** * 1.由从msms数据中查询到的用户ID, 2.再由用户ID从crms数据库获取用户的名称 3.将用户称显示在JSP中 */ String customerId = null; try { // 1.由从msms数据中查询到的用户ID orderdetailList = statisticsBiz.getOrderdetailService().queryAll(); // 设置迭代因子 Integer i = 0; // 将所有的用户ID(String),迭代替换成用户名称(String) for (Orderdetail orderdetail_2 : orderdetailList) { customerId = ((Orders) (orderdetail_2.getOrders())) .getCustomer_id(); // 得到用户的名称 customerinfo = statisticsBiz.getCustomerinfoService() .queryById(customerId); // 迭代替换 ((Orders) (orderdetailList.get(i).getOrders())) .setCustomer_id(customerinfo.getCustomerName()); // 给JFreeChart传数据 pieDataSet.setValue(customerinfo.getCustomerName(), orderdetail_2 .getSub_price()); i++; } // 传给JSP页面 //request_1.put("dataSet", dataSet); } catch (Exception e) { e.printStackTrace(); } return "success"; } @Override public String execute() throws Exception { return super.execute(); } /** * 用于超链接 * * @return */ public String success() { return "success"; } }
3. 配置struts.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <!-- 拦截struts的扩展名 --> <constant name="struts.action.extension" value="action,"/> <!-- 开发模式 --> <constant name="struts.devModel" value="true"/> value="crms"/> <package name="statistics" namespace="/statistics" extends="jfreechart-default"> <action name="userinfo" class="userinfoAction"> <result name="success"> /WEB-INF/jsp/index.jsp </result> <result name="error"> /login.jsp </result> </action> <action name="link_*" class="statisticsAction"> <result name="success"> /WEB-INF/jsp/statisticsReport/{1}.jsp </result> </action> </package> </struts>
4. 寫JSP頁面offerUp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <%@page import="org.jfree.data.general.DefaultPieDataset"%> <%@page import="org.jfree.chart.plot.PiePlot3D"%> <%@page import="java.awt.Font"%> <%@page import="org.jfree.chart.title.LegendTitle"%> <%@page import="org.jfree.chart.title.TextTitle"%> <%@page import="org.jfree.chart.JFreeChart"%> <%@page import="org.jfree.chart.labels.StandardPieToolTipGenerator"%> <%@page import="org.jfree.chart.imagemap.StandardURLTagFragmentGenerator"%> <%@page import="org.jfree.chart.urls.StandardPieURLGenerator"%> <%@page import="org.jfree.chart.entity.StandardEntityCollection"%> <%@page import="org.jfree.chart.ChartRenderingInfo"%> <%@page import="java.io.PrintWriter"%> <%@page import="org.jfree.chart.servlet.ServletUtilities"%> <%@page import="org.jfree.chart.ChartUtilities"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <%--分析贡献 --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>createDictionary</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link href="jsp/../css/style.css" type="text/css" rel="stylesheet"> <style type="text/css"> .btnStyle { border: #2C59AA 1px solid; padding: 3px 2px 0px 5px; margin-left: 2px; width: 40px; height: 20px; FILTER: progid : DXImageTransform.Microsoft.Gradient ( GradientType = 0, StartColorStr = #ffffff, EndColorStr = #C3DAF5 ); cursor: hand; } #btnSave,#btnReturn,#btnHelp { float: left; } #button { float: right; } #operate div,th,tr td { font-size: 13px; } #condition { clear: both; } .statisticsIcon { background: url(images/statistics_report.png) no-repeat; margin-left: 10px; width: 43px; height: 40px; } /*饼状图*/ .caky { background-position: -88px -2px; } .caky_over { background-position: -88px -105px; } #showJfreechart,jfreechart{ float:left; } #statisticsReport{ height:10px; } /*导出office*/ .exportIcon{ background: url(images/office.gif) no-repeat; margin-left: 5px; width: 43px; height: 40px; } .export2Excel{ background-position: -2px -2px; } .export2Excel_over{ background-position: -2px -78px; } #exportSheet,#showJfreechart{ float:left; cursor:hand; } </style> <script type="text/javascript" src="js/jquery-1.3.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ //统计图图标的响应事件 $("#showJfreechart").bind("click",function(){ var $content = $('#jfreechart'); if($content.is(":visible")){ $content.hide(1000); }else{ $content.show(1000); } }) //鼠标经过统计图标按钮 //鼠标离开按钮 $("#showJfreechart").hover(function(){ $(this).addClass("caky_over"); },function(){ $(this).removeClass("caky_over"); }) //导出Excel图标的响应事件 $("#exportSheet").bind("click",function(){ window.location.href="excel_offerUp"; }) //鼠标经过导出Excel图标按钮 //鼠标离开按钮 $("#exportSheet").hover(function(){ $(this).addClass("export2Excel_over"); },function(){ $(this).removeClass("export2Excel_over"); }) }); </script> </head> <body> <div id="page"> <div id="operate"> <div id="position"> 数据统计 >> <strong>分析客户贡献</strong> </div> <div id="button"> <div id="btnSave" class="btnStyle"> 保存 </div> <div id="btnReturn" class="btnStyle"> 返回 </div> <div id="btnHelp" class="btnStyle"> 帮助 </div> </div> </div> <div id="form"> <table class="query_form_table"> <tr> <th>客户名称</th> <td><input /></td> <th>年份</th> <td> <select> <option>全部</option> <option>2005</option> <option>2006</option> <option>2007</option> <option>2008</option> <option>2009</option> <option>2010</option> </select> </td> <td> <div class="statisticsIcon caky" id="showJfreechart"> </div> <div class="exportIcon export2Excel" id="exportSheet"> </div> </td> </tr> </table> <div id="statisticsReport"> <div id="jfreechart" style="display: none;"> <br/> <% //创建所需的数据 DefaultPieDataset data = new DefaultPieDataset(); data=(DefaultPieDataset)request.getAttribute("pieDataSet"); //创建3D饼状图的Plot对象 PiePlot3D plot = new PiePlot3D(data); plot.setLabelFont(new Font("隶书", Font.BOLD, 16)); //生成图表 JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot, true); //标题 chart.setTitle(new TextTitle("客户贡献统计图", new Font("黑体", Font.BOLD, 22))); //图例 LegendTitle legend = chart.getLegend(0); legend.setItemFont(new Font("宋体", Font.BOLD, 14)); //生成提示 plot.setToolTipGenerator(new StandardPieToolTipGenerator()); //设置热点链接 plot.setURLGenerator(new StandardPieURLGenerator("statistics/link_offerUpDetail!success")); // StandardEntityCollection entityCollection = new StandardEntityCollection(); //将图片放在临时目录下 ChartRenderingInfo info = new ChartRenderingInfo(entityCollection); PrintWriter pw = new PrintWriter(out); //720是图片长度,450是图片高度 String filename = ServletUtilities.saveChartAsPNG(chart,720,450,info,session); ChartUtilities.writeImageMap(pw, "map0", info, false); // String url = basePath+ "/servlet/DisplayChart?filename=" + filename;//request.getContextPath() pw.flush(); %> <img src="<%=url%>" alt="<%=url%>" width="750" height="450" usemap="#map0" border="1" /> </div> </div> </div> <div id="list"> <br /> <table class="data_list_table"> <tr> <th>编号</th> <th>客户名称</th> <th>订单金额(元)</th> </tr> <!-- 读取数据库开始 --> <s:iterator value="#request.orderdetailList" id="orderdetail" status="i"> <tr> <td class="list_data_text"><s:property value="#i.index+1"/></td> <td class="list_data_text"><s:property value="#orderdetail.orders.customer_id"/></td> <td class="list_data_text"><s:property value="#orderdetail.sub_price"/></td> </tr> </s:iterator> <!-- 读取数据库结束 --> </table> </div> </div> </body> </html>
5. 配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 显示JFreeChart--> <servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <servlet-mapping> <servlet-name>DisplayChart</servlet-name> <url-pattern>/servlet/DisplayChart</url-pattern> </servlet-mapping> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <!-- Struts2框架所拦截的文件后缀配置begin--> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/statistics/*</url-pattern> </filter-mapping> </web-app>
6. 最后運行的結果如下圖所示:
发表评论
-
Springboot项目(整合WebService带协议头验证+WebSocket+Web+动态日志输出)
2020-05-12 14:05 1094环境配置: springboot 1.5.14 ... -
activiti5.18 默认查询的sql生成两个order by
2019-10-17 12:14 387<spring.version>4.2.4.RE ... -
springboot 定时任务重复执行
2019-06-04 17:35 2174开发一数据接收WebService,里面用到定时任务@Sc ... -
mybatis-generator自动生成代码[增加Service的生成]
2016-03-22 10:08 9886源码包见附件[Maven项目,在1.3.2基础上修改官方源码] ... -
网络状态监控
2014-06-27 12:56 633import java.io.BufferedReader; ... -
Spring MVC+Jquery Ajax 前后台传递Json对象
2014-03-29 10:02 6145关于Spring MVC3.X 接收和返回Json ... -
同时启动多个Tomcat服务器
2013-10-25 17:15 593我所用Tomcat服务器都为zip版,非安装版。以两个为例: ... -
md5+BASE64加密
2013-10-08 23:20 973import sun.misc.BASE64Encoder; ... -
用MD5对密码进行加密
2013-08-10 15:21 1022package com.yong.bin.md5; i ... -
把CST格式的字符串转成普通的日期格式
2013-02-27 15:58 1578public static void main(Str ... -
Springmvc3+Spring3+MyBatis3
2012-11-27 15:03 1372最近写的一个三层框架:Springmvc3+Spring3+ ... -
Java技术——内部类
2012-11-18 17:35 925内部类 (inner class) 定义:在一个类中定义 ... -
自定义标签
2012-10-26 17:13 0<?xml version="1.0" ... -
log4j.properties
2012-10-24 12:32 0log4j.rootLogger=INFO, log4j ... -
通用Ajax设计
2012-10-21 10:20 2012利用Servlet和反射技术实现通用的Ajax调用设计,如下: ... -
导入Jar包的快捷键
2012-07-02 22:47 1171导入当前光标所在的地方未导入的Jar包: shift+ctrl ... -
Extjs grid 后台
2012-05-22 08:16 0public String gridRecordsByXML( ... -
Extjs 布局
2012-04-18 12:27 0<%@ page language="java ... -
FreeMarker在java项目中的应用
2011-02-15 21:34 3206一、体验FreeMarker FreeMar ... -
动态代理 [用cglib实现]
2011-02-09 10:28 1242一. 用cglib 实现java 的動態代理 ...
相关推荐
“利用JFreeChart实现Java中饼状图、柱状图等图表并在Jsp中显示”这个标题表明我们将探讨如何使用JFreeChart库来创建各种类型的图表,如饼状图和柱状图,并且这些图表能够在JavaServer Pages (JSP) 中展示。...
在本教程中,我们将深入探讨如何使用 JFreeChart 创建饼状图(Pie Chart),这是一个常用于展示数据部分比例的可视化工具。 **创建 PieDataset 对象(准备数据)** 在 JFreeChart 中,饼状图的数据由 `PieDataset`...
要使用JFreeChart实现3D饼状图,你需要遵循以下步骤: 1. **引入JFreeChart库**:在Java项目中,你需要将JFreeChart的jar文件添加到类路径中。你可以从JFreeChart的官方网站下载最新的版本,或者通过Maven或Gradle...
在Java开发领域,JFreeChart库是一个非常受欢迎的图表生成工具,它允许开发者轻松地创建各种图表,包括柱状图、线形图、饼状图等。本篇将重点介绍如何利用JFreeChart来创建3D和平面的饼状图,并提供详细的注释帮助...
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
JFreeChart中的`PiePlot`类是实现饼状图的关键。你可以指定数据集,每个数据项的值将决定饼图中相应扇形的大小。还可以调整标签的位置、角度、字体等细节。 3. **柱状图**:柱状图用于比较不同类别的数值。...
在“flex jfreechart生成 饼状图”的场景下,我们首先需要在Java端使用JFreeChart库创建饼状图,然后将其转换为图像格式(如JPEG或PNG)。接着,Flex应用通过HTTP服务请求这个图像,并在前端以Image组件展示。这通常...
在这个特定的场景中,我们将关注如何使用JFreeChart生成3D饼状图和柱状图,并将这些图像保存到指定的文件目录下。 首先,我们需要了解JFreeChart的基本用法。JFreeChart的核心是`ChartFactory`类,它提供了静态方法...
jfreechart饼状图的生成可以通过使用DefaultPieDataset类来实现。DefaultPieDataset类是jfreechart库中的一个核心类,用于存储饼状图中的数据。通过设置DefaultPieDataset对象的setValue方法,可以添加数据到饼状图...
Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...
《使用JFreeChart生成曲线、柱状图、饼状图、分布图展示到JSP》 JFreeChart是一个强大的Java库,它允许开发者创建各种类型的图表,包括曲线图、柱状图、饼状图和分布图等。在当前JS图表库盛行的时代,JFreeChart...
总的来说,JFreeChart是Java开发中实现数据可视化的强大工具,无论是简单的柱状图、饼状图,还是更具立体感的3D饼状图,都可以通过其提供的API轻松实现。通过熟练掌握JFreeChart的使用,开发者可以更好地将复杂的...
jFreeChart是java编程语言中一个功能强大、开源免费的图表库,能够生成各种类型的图表,包括曲线图、饼状图、柱状图等。通过jFreeChart,可以快速地生成高质量的图表,以满足不同领域的需求。 jFreeChart核心对象类...
2. 使用`JFreeChart`类创建图表实例,指定图表类型(如`ChartFactory.createBarChart()`用于柱状图,`ChartFactory.createPieChart()`用于饼状图,`ChartFactory.createLineChart()`用于折线图)。 3. 创建`...
以上就是使用JFreeChart库在Java Web环境中创建条形图、饼状图和折线图的基本方法。你可以根据实际需求调整颜色、样式、标签等属性,以实现更复杂的图表功能。通过JFreeChart,你可以轻松地为Web应用程序添加强大的...
JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件或Web应用中创建出各种复杂的图表,包括线状图、饼状图和柱状图。这些图表类型广泛应用于数据分析、报告制作以及可视化展示等领域。下面我们将...
Java 中可以使用 JFreeChart 库来实现各种数据统计图,如柱形图、饼图、折线图等。下面将详细介绍如何使用 JFreeChart 库实现数据统计图。 首先,需要添加三个第三方包到 Java 项目中,分别是 jfreechart-1.0.13....
下面我们将详细探讨如何使用 JFreeChart 实现无乱码的柱状图和饼状图,并在 JSP 页面中正确显示。 首先,要解决中文乱码问题,我们需要确保所有环节的编码设置正确。这包括项目的源代码编码、JSP 页面编码以及 ...
在Java中,我们可以使用JavaFX或JFreeChart库来创建饼状图。JavaFX的`PieChart`类提供了直接创建饼图的功能,只需要设置各个扇区的值和标签即可。而JFreeChart则提供了更强大的自定义选项,如添加图例、调整颜色等。...