5)Java类文件:
5-1)StatChartServic.java类:
java 代码
- package com.ce.jfreechart.service;
-
- import java.awt.Color;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import org.apache.tapestry.IRequestCycle;
- import org.apache.tapestry.engine.IEngineService;
- import org.apache.tapestry.engine.ILink;
- import org.apache.tapestry.services.Infrastructure;
- import org.apache.tapestry.services.LinkFactory;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartUtilities;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.axis.CategoryAxis;
- import org.jfree.chart.axis.DateAxis;
- import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
- import org.jfree.chart.plot.CategoryPlot;
- import org.jfree.chart.plot.PiePlot;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.chart.plot.XYPlot;
- import org.jfree.chart.renderer.category.BarRenderer3D;
- import org.jfree.chart.renderer.xy.XYItemRenderer;
- import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
- import org.jfree.chart.urls.StandardPieURLGenerator;
- import org.jfree.data.category.DefaultCategoryDataset;
- import org.jfree.data.general.DefaultPieDataset;
- import org.jfree.data.time.Day;
- import org.jfree.data.time.Hour;
- import org.jfree.data.time.Minute;
- import org.jfree.data.time.Month;
- import org.jfree.data.time.TimeSeries;
- import org.jfree.data.time.TimeSeriesCollection;
- import org.jfree.ui.RectangleInsets;
- import com.ce.jfreechart.vo.PieChartVO;
-
-
-
-
- public class StatChartService implements IEngineService {
- private HttpServletRequest request;
-
- private HttpServletResponse response;
-
- private LinkFactory linkFactory;
-
- private Infrastructure infrastructure;
-
- private final static String SERVICE_NAME = "chart";
-
- public final static String CHART_PARAS_OBJ_NAME = "pcVo";
-
- public void setResponse(HttpServletResponse response) {
- this.response = response;
- }
-
- public void setRequest(HttpServletRequest request) {
- this.request = request;
- }
-
- public void setLinkFactory(LinkFactory linkFactory) {
- this.linkFactory = linkFactory;
- }
-
- public ILink getLink(boolean post, Object parameter) {
- Map parameters = new HashMap();
- return linkFactory.constructLink(this, post, parameters, false);
- }
-
- public void setInfrastructure(Infrastructure infrastructure) {
- this.infrastructure = infrastructure;
- }
-
- public String getName() {
- return SERVICE_NAME;
- }
-
- public void service(IRequestCycle cycle) throws IOException {
- PieChartVO pcVo = (PieChartVO) request.getSession()
- .getAttribute(CHART_PARAS_OBJ_NAME);
- if (pcVo == null) {
- return;
- }
-
- Chart chart = new Chart();
-
- try {
- chart.getPieChart3D(request, response, pcVo);
- } finally {
- request.getSession().removeAttribute(CHART_PARAS_OBJ_NAME);
- }
- }
- }
-
-
-
-
- class Chart {
-
-
-
-
-
-
-
-
-
-
-
-
- public void getPieChart3D(HttpServletRequest request,
- HttpServletResponse response, PieChartVO pcVo) throws IOException {
- response.setDateHeader("Expires", 0);
- response.setContentType("image/jpeg");
-
- String title = pcVo.getTitle();
-
- String[] name = pcVo.getName();
-
- double[] value = pcVo.getValue();
-
- int width = pcVo.getWidth();
-
- int hight = pcVo.getHight();
-
- if (title == null || "".equals(title)) {
- title = " ";
- }
- if (name == null || name.length == 0 || value == null
- || value.length == 0) {
- return;
- }
- if (width <= 0) {
- width = 400;
- }
- if (hight <= 0) {
- hight = 400;
- }
-
- DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
- int j = name.length <= value.length ? name.length : value.length;
- for (int i = 0; i < j; i++) {
- defaultpiedataset.setValue(name[i], value[i]);
- }
-
- JFreeChart chart = ChartFactory.createPieChart3D(title,
- defaultpiedataset, true, true, false);
-
- chart.setBackgroundPaint(Color.WHITE);
- PiePlot plot = (PiePlot) chart.getPlot();
- plot.setNoDataMessage("No data available");
- ChartUtilities.writeChartAsJPEG(response.getOutputStream(), chart,
- width, hight);
- }
-
- }
PieChartPage.java页面类
java 代码
- package com.ce.jfreechart.page;
-
- import javax.servlet.http.HttpServletRequest;
-
- import org.apache.tapestry.annotations.InjectObject;
- import org.apache.tapestry.event.PageBeginRenderListener;
- import org.apache.tapestry.event.PageEvent;
-
- import com.ce.jfreechart.service.StatChartService;
- import com.ce.jfreechart.vo.PieChartVO;
-
-
-
-
- public abstract class PieChartPage extends org.apache.tapestry.html.BasePage implements PageBeginRenderListener{
- private final String title = "公司人员统计饼状图";
-
- @InjectObject("service:tapestry.globals.HttpServletRequest)
- public abstract HttpServletRequest getRequest();
-
- /**
- * 页面开始表现时触发,或form重表现时也会触发
- */
- public void pageBeginRender(PageEvent event) {
-
- if (!event.getRequestCycle().isRewinding()) {
- try{
-
- //画饼图
- String[] name = {"管理人员","市场人员","开发人员","OEM人员","其他人员"};
- double[] value = {10.02D,20.23D,56.80D,12.30D,5.98D};
- PieChartVO pcVo = new PieChartVO();
- pcVo.setTitle(title);
- pcVo.setName(name);
- pcVo.setValue(value);
- pcVo.setWidth(450);
- pcVo.setHight(300);
- if(this.getRequest().getSession().getAttribute(StatChartService.CHART_PARAS_OBJ_NAME)==null)
- this.getRequest().getSession().setAttribute(StatChartService.CHART_PARAS_OBJ_NAME, pcVo);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- }
参数Vo对象:
java 代码
-
-
-
- public class PieChartVO implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
-
-
-
- private String title;
-
-
-
-
- private String[] name;
-
-
-
-
- private double[] value;
-
-
-
-
- private int width;
-
-
-
-
- private int hight;
-
- 方法略......
- }
PieChart.html页面文件
xml 代码
- >
- <html>
- <head>
- <title>PieChart.html<!---->title>
-
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-
-
-
- <!---->head>
-
- <body>
-
- <div align="center"><img src="app?service=chart" border="0"/><!---->div>
- <!---->body>
- <!---->html>
PieChart.page文件
xml 代码
- xml version="1.0" encoding="GBK"?>
- "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
- "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
-
- <page-specification class="com.ce.jfreechart.page.PieChartPage">
- <!---->page-specification>
分享到:
相关推荐
标题中的“JFreeChart与JSP结合实现报表功能”指的是使用Java编程语言中的JFreeChart库和JavaServer Pages(JSP)技术来创建动态、交互式的报表应用。JFreeChart是一个强大的开源图表库,能够生成多种类型的图表,如...
【JfreeChart与Struts2结合使用】 JFreeChart是一个强大的Java图表库,它提供了丰富的图表类型,如柱状图、饼图、折线图、散点图等,用于数据可视化。Struts2是一个流行的MVC框架,常用于构建企业级Web应用。将...
当JFreeChart与Struts2结合时,可以实现动态生成图表并在Web页面上展示的功能。下面将详细介绍这两个工具以及它们如何协同工作。 首先,JFreeChart是一个强大的图表库,它支持多种图表类型,如折线图、饼状图、柱状...
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
本文将深入探讨如何利用JFreeChart库来实现一个雷达图实例,这有助于数据可视化,特别是在数据分析和报告中。 首先,我们来看`WMPolarPlot.java`,这个文件很可能包含了对极坐标图(Polar Plot)的实现,因为雷达图...
这可能需要结合JavaScript库,如jQuery和Ajax,来实现与服务器的通信和页面动态更新。 在提供的压缩包文件中,"JFreeChart"可能包含了示例代码、数据库脚本、参考资料和其他帮助文件。你可以通过研究这些文件来...
JFreeChart与Struts结合生成多维3D柱状图的实例 report.jsp -- JSP文件 ReportAction.java -- Action类 JFreeChartUtils.java -- 工具类
"JFreeChart+JSP实现统计图展示"是一个典型的Web应用程序开发案例,它结合了JFreeChart库、JavaServer Pages (JSP) 和Servlet技术,用于从SQL Server 2005数据库中提取数据并以图表的形式呈现。 **JFreeChart** 是...
其中`struts2-jfreechart-plugin-x.x.x.jar`是实现Struts2与JFreeChart整合的关键组件。 ##### 2.2 配置Web环境 在`web.xml`中添加Struts2的过滤器配置,如下所示: ```xml xmlns:xsi=...
在Java编程语言中,利用JFreeChart库实现实时曲线图是一种常见的数据可视化技术,尤其适用于需要实时监控或展示数据变化的应用场景。JFreeChart是一个开源的Java图表库,提供了丰富的图表类型和自定义选项,使得...
DWR与JFreeChart的结合则可以解决这个问题,它们可以实现在用户界面上无刷新地动态更新图表,提高交互性。 首先,我们需要了解DWR的基本原理。DWR在服务器端设置一个引擎,这个引擎可以映射到特定的Java方法,当...
本文将深入探讨如何将JFreeChart与JSP(JavaServer Pages)结合,以实现动态生成折线图的功能。 JFreeChart是一个开源的Java库,它允许开发人员生成高质量的、多样的图表,如折线图、柱状图、饼图等,可以用于报告...
3. **添加到Chart**:然后,将`RadarPlot`对象添加到`JFreeChart`实例中,通常通过`JFreeChart.createRadarChart()`方法实现。 4. **自定义图表**:JFreeChart提供了丰富的API用于定制图表,例如调整字体、颜色、...
标题“JFreeChart与JSP动态图表”涉及的是在Java Web开发中利用JFreeChart库创建动态图表并与JSP(JavaServer Pages)结合的技术。JFreeChart是一个强大的开源Java库,用于生成高质量的2D图表,包括折线图、柱状图、...
"JFreechart教程与实例" JFreechart是一款功能强大的图形报表组件,主要用于生成各种动态图表。在Java项目的应用中,JFreechart组件几乎可以满足目前图形报表的所有需求。JFreechart组件可以生成各种各样的图形报表...
标题“JFreechart在Linux下不显示及中文乱码问题”指出的是在使用JFreechart库创建图表时,在Linux操作系统环境下遇到的两个主要问题:图表无法正常显示以及中文字符出现乱码。JFreechart是一个Java库,用于生成高...
总结来说,JFreeChart与JDBC的结合使用使得从数据库中获取的数据能够以直观的图形形式展示,这对于开发数据分析应用和仪表盘非常有益。通过熟练掌握这两者的结合,你可以创建出具有交互性、易于理解的图表,帮助用户...
Java使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的...