- 浏览: 36643 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
mapecun:
您好,我模仿你的代码演示了一下,在最后的现实页面出现OpLog ...
JFreeChart1.0.6的一个通用Web Demo -
iandvisble:
JFreeChart入门资料 -
769034965:
确实不错,很好,谢谢
JBoss下EJB3.0实例教程(黎活明) -
風一樣的男子:
今天发现 Apusic 5 下跑 EL 都报错 org.ope ...
Webservices与JFreeChart的gnujaxp.jar冲突! -
livingbody:
太有才了,我都没看明白你说的是什么
JBPM的MySQL文和迁移到Tomcat的说明
这是我自己做的一个关于统计的WebDemo;
首先建立一个web项目;在src中加入以下java文件:
GenerateWebBarChart3D.java(用于Bar3D图的显示的)
java 代码
- /**
- * Project name: RCP
- *
- * Package name: com.sclh.rsp.registercenter.service.chart
- * Filename : GenerateWebBarChart3D.java
- * @Author : fhway
- * DateTime : 2007-10-18 下午04:43:00
- * Visoin : 1.0
- * Company : sclh
- * Copyright (c) 2007
- * 说明:
- */
- package com.sclh.rsp.registercenter.service.chart;
- import java.awt.Font;
- import java.awt.RenderingHints;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.http.HttpSession;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartRenderingInfo;
- import org.jfree.chart.ChartUtilities;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.entity.StandardEntityCollection;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.chart.servlet.ServletUtilities;
- import org.jfree.chart.title.TextTitle;
- import org.jfree.data.category.CategoryDataset;
- /**
- * @author fhway
- *
- */
- public class GenerateWebBarChart3D {
- public static String getBarChart3D(CategoryDataset dataset,String title,String xName ,String yName, int width, int height, HttpSession session,PrintWriter pw){
- String filename = null;
- Font font = null;
- JFreeChart chart = ChartFactory.createBarChart3D(title, xName, yName, dataset, PlotOrientation.VERTICAL, false, false, false);
- chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
- TextTitle tt=new TextTitle(title);
- font = new Font("黑体",Font.CENTER_BASELINE,20);//这个地方是设置统计图标题的字体和大小
- tt.setFont(font);
- chart.setTitle(tt);
- chart.setBackgroundPaint(new java.awt.Color(244, 247, 251)); //统计图片的底色
- ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
- try {
- filename = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);
- //把image map 写入到 PrintWriter
- ChartUtilities.writeImageMap(pw, filename, info, true);
- } catch (IOException e) {
- System.out.println("Exception - " + e.toString());
- e.printStackTrace(System.out);
- filename = "public_error_500x300.png";
- }
- pw.flush();
- return filename;
- }
- }
GenerateWebPieChart3D.java(用于Pie3D图显示的)
java 代码
- /**
- * Project name: RCP
- *
- * Package name: com.sclh.rsp.registercenter.hibernate.dao.chat
- * Filename : GenerateWebPieChart3D.java
- * @Author : fhway
- * DateTime : 2007-10-18 上午10:21:38
- * Visoin : 1.0
- * Company : sclh
- * Copyright (c) 2007
- * 说明:
- */
- package com.sclh.rsp.registercenter.service.chart;
- import java.awt.Font;
- import java.awt.RenderingHints;
- import java.io.PrintWriter;
- import java.text.DecimalFormat;
- import java.text.NumberFormat;
- import java.util.Iterator;
- import java.util.Map;
- import javax.servlet.http.HttpSession;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartRenderingInfo;
- import org.jfree.chart.ChartUtilities;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.entity.StandardEntityCollection;
- import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
- import org.jfree.chart.plot.PiePlot;
- import org.jfree.chart.servlet.ServletUtilities;
- import org.jfree.chart.title.TextTitle;
- import org.jfree.data.general.DefaultPieDataset;
- /**
- * @author fhway
- *
- */
- public class GenerateWebPieChart3D {
- public static String getPieChart3D(Map map,String title,int width,int height,HttpSession session,PrintWriter pw){
- String filename = null;
- Font font = null;
- DefaultPieDataset data = new DefaultPieDataset();
- Iterator it = null;
- it = map.entrySet().iterator();
- while(it.hasNext()){
- Map.Entry entry = (Map.Entry) it.next();
- data.setValue(String.valueOf(entry.getKey()), Double.valueOf(String.valueOf(entry.getValue())));
- }
- try{
- JFreeChart chart = ChartFactory.createPieChart3D(title, data, false, false, false);
- PiePlot plot = (PiePlot)chart.getPlot();
- plot.setNoDataMessage("查询数据为空!");
- plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));
- plot.setForegroundAlpha(0.5f);
- plot.setCircular(false);
- font = new Font("simsun",Font.PLAIN,12);//这个地方是设置统计图标题的字体和大小
- plot.setLabelFont(font);
- chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
- TextTitle tt=new TextTitle(title);
- font = new Font("黑体",Font.CENTER_BASELINE,20);//这个地方是设置统计图标题的字体和大小
- tt.setFont(font);
- chart.setTitle(tt);
- chart.setBackgroundPaint(new java.awt.Color(244, 247, 251)); //统计图片的底色
- ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
- filename = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);
- //把image map 写入到 PrintWriter
- ChartUtilities.writeImageMap(pw, filename, info, true);
- pw.flush();
- } catch (Exception e) {
- System.out.println("Exception - " + e.toString());
- e.printStackTrace(System.out);
- filename = "public_error_500x300.png";
- }
- return filename;
- }
- }
java 代码
IOpLoggerChart.java(调用方法接口文件)
- /**
- * Project name: RCP
- *
- * Package name: com.sclh.rsp.registercenter.service.chat
- * Filename : ILoggerChat.java
- * @Author : fhway
- * DateTime : 2007-10-18 下午02:28:48
- * Visoin : 1.0
- * Company : sclh
- * Copyright (c) 2007
- * 说明:
- */
- package com.sclh.rsp.registercenter.service.chart;
- import java.io.PrintWriter;
- import javax.servlet.http.HttpSession;
- /**
- * @author fhway
- *
- */
- public interface IOpLoggerChart {
- /**
- *
- * @param title
- * @param session
- * @param pw
- * @return
- * @throws Exception
- * fhway 2007-10-18 下午05:21:03
- */
- public String getPieChart3D(String title, HttpSession session,PrintWriter pw) throws Exception;
- /**
- *
- * @param title
- * @param xName
- * @param yName
- * @param session
- * @param pw
- * @return
- * @throws Exception
- * fhway 2007-10-18 下午05:21:07
- */
- public String getBarChart3D(String title, String xName ,String yName, HttpSession session,PrintWriter pw) throws Exception;
- }
OpLoggerChartImpl.java(调用实现)
java 代码
- /**
- * Project name: RCP
- *
- * Package name: com.sclh.rsp.registercenter.hibernate.dao.chat
- * Filename : LoggerChat.java
- * @Author : fhway
- * DateTime : 2007-10-18 上午10:26:02
- * Visoin : 1.0
- * Company : sclh
- * Copyright (c) 2007
- *
- * 说明:日志类型分类,图的长度和宽度采取Ioc的方式注入
- * 可以统计的类别有
- * 1. 日志数据库操作类型
- * 2. 时间段访问量(以月为单位,当前一年)
- * sample HQL="select t.dbtype, count(t.dbtype) from oplogger t group by(t.dbtype) order by to_number(t.dbtype)"
- */
- package com.sclh.rsp.registercenter.service.chart;
- import java.io.PrintWriter;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpSession;
- import org.hibernate.HibernateException;
- import org.hibernate.criterion.Projections;
- import org.jfree.data.category.CategoryDataset;
- import org.jfree.data.category.DefaultCategoryDataset;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.sclh.rsp.registercenter.hibernate.dao.IOpLogger;
- import com.sclh.rsp.registercenter.hibernate.vo.OpLogger;
- import com.sclh.rsp.registercenter.hibernate.vo.OpLoggerDbType;
- /**
- * @author fhway
- *
- */
- public class OpLoggerChartImpl implements IOpLoggerChart{
- /**
- * 定义输出图片的长度和宽度
- */
- private int width;
- private int height;
- /*DAO方法 */
- private IOpLogger opLoggerDAO;
- /* 图标数据 */
- private Map map;
- public OpLoggerChartImpl(){
- map = new HashMap();
- if(width == 0 ){ width = 500;}
- if(height == 0){ height = 400;}
- }
- /**
- * 获取图标数据
- * @return
- * @throws Exception
- * fhway 2007-10-18 上午10:49:55
- */
- private Map getLoggerDBTypeDataMap() throws Exception{
- Map map = new HashMap();
- List ll = opLoggerDAO.getCriteria(OpLogger.class)
- .setProjection(Projections.projectionList()
- .add(Projections.property("dbtype"))
- .add(Projections.count("dbtype"))
- .add(Projections.groupProperty("dbtype")))
- .list();
- Iterator it = ll.iterator();
- while(it.hasNext()){
- Object[] object = (Object[]) it.next();
- OpLoggerDbType odb = (OpLoggerDbType)object[0];
- map.put(odb.getName(), object[1].toString());
- }
- return map;
- }
- /**
- * 获取一个演示用的简单数据集对象
- * @return
- * @throws Exception
- * @throws HibernateException
- */
- private CategoryDataset getLoggerDBTypeDataDataSet() throws Exception {
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- List ll = opLoggerDAO.getCriteria(OpLogger.class)
- .setProjection(Projections.projectionList()
- .add(Projections.property("dbtype"))
- .add(Projections.count("dbtype"))
- .add(Projections.groupProperty("dbtype")))
- .list();
- Iterator it = ll.iterator();
- while(it.hasNext()){
- Object[] object = (Object[]) it.next();
- OpLoggerDbType odb = (OpLoggerDbType)object[0];
- dataset.addValue(new Integer(object[1].toString()).intValue(), "", odb.getName());
- }
- return dataset;
- }
- /**
- * 图形生成
- * @param map
- * @param title
- * @param session
- * @param pw
- * @return
- * fhway 2007-10-18 上午10:50:15
- * @throws Exception
- */
- public String getPieChart3D(String title, HttpSession session,PrintWriter pw) throws Exception{
- Map map = getLoggerDBTypeDataMap();
- return GenerateWebPieChart3D.getPieChart3D(map,title,width,height, session, pw);
- }
- public String getBarChart3D(String title, String xName ,String yName, HttpSession session,PrintWriter pw) throws Exception{
- CategoryDataset dataset = getLoggerDBTypeDataDataSet();
- return GenerateWebBarChart3D.getBarChart3D(dataset,title,xName , yName, width, height, session,pw);
- }
- /**
- * @return the height
- */
- public int getHeight() {
- return height;
- }
- /**
- * @param height the height to set
- */
- public void setHeight(int height) {
- this.height = height;
- }
- /**
- * @return the width
- */
- public int getWidth() {
- return width;
- }
- /**
- * @param width the width to set
- */
- public void setWidth(int width) {
- this.width = width;
- }
- /**
- * @return the map
- */
- public Map getMap() {
- return map;
- }
- /**
- * @param map the map to set
- */
- public void setMap(Map map) {
- this.map = map;
- }
- /**
- * @return the opLoggerDAO
- */
- public IOpLogger getOpLoggerDAO() {
- return opLoggerDAO;
- }
- /**
- * @param opLoggerDAO the opLoggerDAO to set
- */
- public void setOpLoggerDAO(IOpLogger opLoggerDAO) {
- this.opLoggerDAO = opLoggerDAO;
- }
- public static void main(String[] args) throws Exception{
- ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
- IOpLoggerChart lc = (IOpLoggerChart) context.getBean("loggerChartManger");
- }
- }
OpLoggerChart.jsp(jsp调用实现)
js 代码
- <%@ page contentType="text/html;charset=GBK"%>
- <%@ page import = "java.io.PrintWriter" %>
- <%@ page import="org.springframework.web.context.WebApplicationContext"%>
- <%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
- <%@ page import="com.sclh.rsp.registercenter.service.chart.IOpLoggerChart"%>
- <%
- ServletContext servletContext = (ServletContext) request.getSession().getServletContext();
- WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
- IOpLoggerChart lc = (IOpLoggerChart) ctx.getBean("opLoggerChartManger");
- String filename = lc.getBarChart3D("日志数据操作统计图", "日志类型", "数值", session, new PrintWriter(out));
- String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
- %>
- <HTML>
- <HEAD>
- <TITLE>日志数据操作统计图</TITLE>
- </HEAD>
- <BODY>
- <P ALIGN="CENTER">
- <img src="<%=graphURL%>" width=560 height=500 border=0 usemap="#<%=filename%>">
- </P>
- </BODY>
- </HTML>
代码基本就是这些,下面是项目的配置问题:
1.由于项目采用了Spring和Hibernate的框架,所以必须要进行一些设定.
2.数据库表的sql如下:
java 代码
- create table OPLOGGER
- (
- ID VARCHAR2(12) not null,
- MESSAGE VARCHAR2(1000) not null,
- USERID VARCHAR2(12) not null,
- TYPE VARCHAR2(2) not null,
- DBTYPE VARCHAR2(2) not null,
- ISLOOK CHAR(1),
- REMOTEADDR VARCHAR2(15),
- SYSTEMTIME DATE not null,
- DELFLAG CHAR(1) not null
- )
- tablespace RSC
- pctfree 10
- initrans 1
- maxtrans 255
- storage
- (
- initial 64K
- minextents 1
- maxextents unlimited
- );
- comment on table OPLOGGER
- is '日志表';
评论
7 楼
mapecun
2013-10-19
您好,我模仿你的代码演示了一下,在最后的现实页面出现OpLoggerChartImpl 中
OpLoggerDbType 不能强转为 Object ,请问你做这个实例时发现这个问题了吗?
能帮我解决下吗? 非常感谢
OpLoggerDbType 不能强转为 Object ,请问你做这个实例时发现这个问题了吗?
能帮我解决下吗? 非常感谢
6 楼
aflyer
2007-11-01
呵呵!不是代码复杂,而是我贴的代码是生产用的代码.使用默认的方式当然简单了.
5 楼
jameshunter
2007-10-30
jfreechart没有那么复杂,把包导进来自己改写一下生成报表体的代码,就OK了,我曾经给jfreechart的SpiderWebPlot(蜘蛛网图/雷达图的一种)加上了刻度,和刻度标签,还算比较容易改的。
4 楼
Julian
2007-10-26
asdfasdf 写道
jfreechart有那么复杂么?
一个写一个 Dataset 一个servlet就搞定了把
其他类不用怎么改动
一个写一个 Dataset 一个servlet就搞定了把
其他类不用怎么改动
以前有个人这样做,在压力测试的时候容器非常容易崩溃,虚拟机分配了4G内存。
3 楼
asdfasdf
2007-10-26
jfreechart有那么复杂么?
一个写一个 Dataset 一个servlet就搞定了把
其他类不用怎么改动
一个写一个 Dataset 一个servlet就搞定了把
其他类不用怎么改动
2 楼
jian'shang
2007-10-25
嘿嘿,我就用了一个接口,一个bean,一个数据类,一个生成类,
一个标签,最后在封装成工厂,就可以实现柱,饼,线,能力图,
而且可以在页面自定义,全部plot参数哦
小自恋一把。。。
一个标签,最后在封装成工厂,就可以实现柱,饼,线,能力图,
而且可以在页面自定义,全部plot参数哦
小自恋一把。。。
1 楼
ddh9504
2007-10-24
有那么复杂吗?
发表评论
-
JBPM的MySQL文和迁移到Tomcat的说明
2008-03-07 13:01 1874以下是3.2的mysql文 create table JBPM ... -
图说 Eclipse下 Seam Project 构建
2008-01-29 10:53 2730Seam Project 构建 环境: wtp-all-in- ... -
JBoss下EJB3.0实例教程(黎活明)
2007-11-16 15:59 4129EJB3.0实例教程,觉得实在不错! -
HtmlEmail方式STMP邮件发送为何用java客户端可以,用web方式调用就不行了呢?
2007-11-02 14:59 7978我的HtmlEmail源文件是BBSCS-8的代码改写而成: ... -
java中相对路径,绝对路径问题总结
2007-11-02 12:28 2953注意: 1. 此文未经验证; ... -
JFreeChart入门资料
2007-10-18 09:36 3629这段时间学习JFreeChart,在网上收集了一些资料作为参考 ...
相关推荐
JFreeChart1.0.6 完全支持中文 我下载了很多JFreeChart (包括JFreeChart1.0.6 JFreeChart1.0.8 JFreeChart1.0.10 JFreeChart1.0.12) 的版本,重于发现了一个对中文支持非常好的,立即跟大家分享了!
《JFreeChart 1.0.6 Demo源码解析与应用》 JFreeChart是一款流行的开源Java库,用于创建各种类型的图表,如折线图、柱状图、饼图、散点图等。在Java开发中,JFreeChart被广泛用于数据分析和可视化,尤其在报表系统...
创建一个简单的销售数据表格,例如咖啡、啤酒、果汁、汽水和茶的季度销量。然后,通过`DefaultCategoryDataset`类来构建数据集,使用`addValue`方法将数据添加到数据集中。接下来,创建`CategoryPlot`对象,并设置其...
"jfreechart-1.0.6-demo"源码是JFreeChart的一个示例集合,它展示了如何创建并定制各种类型的图表,是学习和理解JFreeChart功能的最佳起点。通过分析这些示例代码,开发者可以快速掌握JFreeChart的API用法和设计...
这个"jfreechart1.0.6demo"是一个包含 JFreeChart 1.0.6 版本的演示程序的源代码包,非常适合初学者或有经验的开发者用来学习和参考如何在 Java 应用程序中集成和自定义图表。 **核心特性** 1. **多类型的图表**:...
JFreeChart 是一个流行的 Java 图表库,用于在应用程序、Swing 小组件、JavaServer Pages (JSP) 和 Servlet 中创建高质量的图表。这个1.0.6版本的资源包提供了全面的文档和支持,使得开发者可以有效地利用 ...
jfreechart-1.0.6.jar
在JFreeChart 1.0.6的压缩包中,`jfreechart-1.0.6`这个文件可能是一个包含所有库文件的目录,里面可能有`.jar`文件(Java Archive),这是运行JFreeChart所需的库文件,将其添加到项目的类路径中,即可在项目中使用...
JFreeChart 是一个流行的 Java 库,用于创建高质量的图表,如饼图、线图、柱状图、散点图等。这个文档主要针对开发者,提供了详尽的指导,帮助他们在自己的应用程序中有效地集成和自定义 JFreeChart 图表。 **一、...
这个`jfreechart1.0.6-javadocs`压缩包包含了JFreeChart 1.0.6版本的API文档,是开发者深入理解和使用该库的重要参考资料。 **1. API接口和类概述** JFreeChart 的核心类包括 `ChartFactory`、`Chart`、`Plot` 和 `...
**JFreeChart 1.0.6 用户开发指南** JFreeChart是一款强大的Java图形库,专为开发者设计,用于在各种应用程序、applets、servlets、JSP中生成高质量的图表。它遵循GNU General Public License,允许用户自由地使用...
1.0.6版本是JFreeChart的一个稳定版本,可能包含了一些性能优化、新功能的添加以及已知问题的修复。 `jfreechartdeveloperguide_version_1.0.6.pdf`这份文档详细阐述了如何使用JFreeChart库来创建和定制各种图表。...
JFreeChart 是一个广泛使用的开源Java库,用于创建各种图表,如饼图、柱状图、线图、散点图等。这个名为“jfreechart-1.0.6-install”的压缩包包含了关于JFreeChart 1.0.6版本的安装教程,对于理解和应用此库至关...
JFreeChart 1.0.6是其一个特定的版本,该版本包含了从早期版本发展而来的各种功能和改进。 JFreeChart的主要特性包括: 1. **易用性**:它提供了清晰的接口设计,使得开发者能够轻松地实现图表的创建。 2. **图像...
- 使用JSP页面创建一个简单的柱状图。示例代码如下: ```jsp ;charset=GBK" %> , org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org....
JFreeChart 1.0.6的官方文档做成电子书,虽然是英文的,但也比Html强,至少有索引
JFreeChart 是一个强大的 Java 图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,适用于各种数据可视化需求。这篇内容将深入探讨 JFreeChart 的基本使用方法和在 `jfreechart demo` 中的...
Really good tools to learn JFreechart quickly!