`
kevin_gzhz
  • 浏览: 59906 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Jfreechart与Tapestry4.0 结合实现(上)

阅读更多
1〉Jfreechart简介:
    JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等
    开发必须要用的两个开发包是jfreechart-1.0.0-rc1.jar(现在最新为1.0.5版本)以及Jcommon-1.0.0.jar
    下面介绍JFreeChart中几个核心的对象类:
        JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象 进行一些属性的定制。              
 JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
        XXXXXDataset:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很               
多类型的数据集对象类
        XXXXXPlot: 图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需               
要Axis、Renderer以及数据集对象的支持
        XXXXXAxis: 用于处理图表的两个轴:纵轴和横轴
        XXXXXRenderer:负责如何显示一个图表对象
        XXXXXURLGenerator :用于生成Web图表中每个项目的鼠标点击链接
        XXXXXToolTipGenerator: 用于生成图象的帮助提示,不同类型图表对应不同类型的工具提                示类
    基本上我认为JFreeChart项目本身的类结构的设计并不是很好,首先在创建图表的时候用到了大量的工厂方法,这样做虽然可以简化创建图表对象的代码,但是对项目本身或者开发人员来讲自行扩展一种新的图表都仍然是一件很麻烦的事情;其次除图表对象本身外其余的类过于复杂,使用者必须去了解每个类型的 图表对象应该对应哪些Axis、Plot、Renderer类,并且必须非常熟悉这些类的构造函数中每个参数的具体含义。这些问题都大大困扰很多初学者。 不过,虽然存在很多问题,但是JFreeChart本身仍不失为一个非常优秀的图表引擎,况且项目本身也在逐渐的发展中。
2〉开发实例:
    实现原理:通过文件流输出到页面显示,因为T4底层引擎已经封装了Servlet,故采用一个T4服务来进行画图操作。
    1)创建一个Web项目JFreeChartDemo,导入所需的相关开发包。(再次创建过程不详述)
    2)在Web.xml中添加如下配置:
xml 代码
 
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"   
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.   
  8.     <display-name>JFreeChart Project<!---->display-name>   
  9.       
  10.      
  11.     <filter>  
  12.         <filter-name>redirect<!---->filter-name>  
  13.         <filter-class>org.apache.tapestry.RedirectFilter<!---->filter-class>  
  14.     <!---->filter>  
  15.     <filter-mapping>  
  16.         <filter-name>redirect<!---->filter-name>  
  17.         <url-pattern>/<!---->url-pattern>  
  18.     <!---->filter-mapping>   
  19.                          
  20.     <servlet>  
  21.         <servlet-name>jfreechart<!---->servlet-name>  
  22.         <servlet-class>org.apache.tapestry.ApplicationServlet<!---->servlet-class>  
  23.         <load-on-startup>0<!---->load-on-startup>  
  24.     <!---->servlet>  
  25.     <servlet-mapping>  
  26.         <servlet-name>jfreechart<!---->servlet-name>  
  27.         <url-pattern>/app<!---->url-pattern>  
  28.     <!---->servlet-mapping>   
  29.   
  30.     <servlet-mapping>  
  31.         <servlet-name>jfreechart<!---->servlet-name>  
  32.         <url-pattern>*.page<!---->url-pattern>  
  33.     <!---->servlet-mapping>  
  34.   
  35.     <servlet-mapping>  
  36.         <servlet-name>jfreechart<!---->servlet-name>  
  37.         <url-pattern>*.external<!---->url-pattern>  
  38.     <!---->servlet-mapping>  
  39.   
  40.     <servlet-mapping>  
  41.         <servlet-name>jfreechart<!---->servlet-name>  
  42.         <url-pattern>*.direct<!---->url-pattern>  
  43.     <!---->servlet-mapping>  
  44.   
  45.     <servlet-mapping>  
  46.         <servlet-name>jfreechart<!---->servlet-name>  
  47.         <url-pattern>*.sdirect<!---->url-pattern>  
  48.     <!---->servlet-mapping>  
  49.   
  50.     <servlet-mapping>  
  51.         <servlet-name>jfreechart<!---->servlet-name>  
  52.         <url-pattern>*.svc<!---->url-pattern>  
  53.     <!---->servlet-mapping>  
  54.   
  55.     <servlet-mapping>  
  56.         <servlet-name>jfreechart<!---->servlet-name>  
  57.         <url-pattern>/assets/*<!---->url-pattern>  
  58.     <!---->servlet-mapping>  
  59.   
  60.     <session-config>  
  61.         <session-timeout>30<!---->session-timeout>  
  62.     <!---->session-config>  
  63.       
  64. <!---->web-app>  
3)在hivemodule.xml中进行如下配置:
xml 代码
 
  1. xml version="1.0" encoding="gb2312"?>  
  2.   
  3.     <module id="jfreechart" version="1.0.0" package="com.ce.jfreechart">  
  4.     <!---->  
  5.     <contribution configuration-id="tapestry.url.ServiceEncoders">  
  6.         <direct-service-encoder id="direct" stateless-extension="direct"            stateful-extension="sdirect" />  
  7.         <page-service-encoder id="page" extension="page" service="page" />  
  8.         <page-service-encoder id="external" extension="external"                    service="external" />  
  9.         <asset-encoder id="asset" path="/assets" />  
  10.         <extension-encoder id="ext" extension="svc" after="*" />  
  11.     <!---->contribution>  
  12.       
  13.     <contribution configuration-id="tapestry.services.ApplicationServices">  
  14.         <service name="chart" object="service:jfreechart.ChartService"/>  
  15.     <!---->contribution>  
  16.       
  17.     <service-point id="ChartService"                      interface="org.apache.tapestry.engine.IEngineService">  
  18.         <invoke-factory>  
  19.             <construct class="com.ce.jfreechart.service.StatChartService">  
  20.                 <set-object property="linkFactory"  
  21.                                   value="service:tapestry.url.LinkFactory"/>  
  22.             <!---->construct>  
  23.         <!---->invoke-factory>  
  24.     <!---->service-point>  
  25. <!---->module>
4)jfreechart.application文件配置如下:
xml 代码
 
  1. xml version="1.0" encoding="GBK"?>  
  2.   
  3.   "-//Apache Software Foundation//Tapestry Specification 4.0//EN"   
  4.   "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">  
  5.   
  6. <application name="jfreechart" engine-class="org.apache.tapestry.engine.BaseEngine">  
  7.     <description>jfreechart Module<!---->description>  
  8.   
  9.     <meta key="org.apache.tapestry.disable-caching" value="true"/>      
  10.     <meta key="org.apache.tapestry.default-page-class" value="true"/>  
  11.     <meta key="org.apache.tapestry.template-encoding" value="utf-8"/>  
  12.     <!---->  
  13.     <page name="PieChart" specification-path="/WEB-INF/page/PieChart.page"/>      
  14. <!---->application>  


分享到:
评论

相关推荐

    JFreeChart与JSP结合实现报表功能

    标题中的“JFreeChart与JSP结合实现报表功能”指的是使用Java编程语言中的JFreeChart库和JavaServer Pages(JSP)技术来创建动态、交互式的报表应用。JFreeChart是一个强大的开源图表库,能够生成多种类型的图表,如...

    JfreeChart与Struts2结合使用例子

    【JfreeChart与Struts2结合使用】 JFreeChart是一个强大的Java图表库,它提供了丰富的图表类型,如柱状图、饼图、折线图、散点图等,用于数据可视化。Struts2是一个流行的MVC框架,常用于构建企业级Web应用。将...

    jfreechart与struts2结合,实现折线图、饼状图、柱状图的页面显示

    当JFreeChart与Struts2结合时,可以实现动态生成图表并在Web页面上展示的功能。下面将详细介绍这两个工具以及它们如何协同工作。 首先,JFreeChart是一个强大的图表库,它支持多种图表类型,如折线图、饼状图、柱状...

    jfreechart 堆栈柱状图跟折线图结合拼接

    jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707

    用JFreeChart在网页中实现Gantt图

    这可能需要结合JavaScript库,如jQuery和Ajax,来实现与服务器的通信和页面动态更新。 在提供的压缩包文件中,"JFreeChart"可能包含了示例代码、数据库脚本、参考资料和其他帮助文件。你可以通过研究这些文件来...

    JFreeChart与Struts结合的例子生成多维3D柱状图

    JFreeChart与Struts结合生成多维3D柱状图的实例 report.jsp -- JSP文件 ReportAction.java -- Action类 JFreeChartUtils.java -- 工具类

    JFreeChart+JSP实现统计图展示

    "JFreeChart+JSP实现统计图展示"是一个典型的Web应用程序开发案例,它结合了JFreeChart库、JavaServer Pages (JSP) 和Servlet技术,用于从SQL Server 2005数据库中提取数据并以图表的形式呈现。 **JFreeChart** 是...

    SSH与jfreechart整合

    其中`struts2-jfreechart-plugin-x.x.x.jar`是实现Struts2与JFreeChart整合的关键组件。 ##### 2.2 配置Web环境 在`web.xml`中添加Struts2的过滤器配置,如下所示: ```xml xmlns:xsi=...

    jfreechart折线图demo

    例如,`jquery.jqplot.js` 是一个基于 JQuery 的图表库,它可以与 JFreeChart 生成的折线图数据相结合,实现动态更新、缩放、平移等功能。 5. **相关库的使用** - **jQuery**: 一个流行的 JavaScript 库,简化了 ...

    dwr 与 jfreechart 实现无刷新报表功能

    DWR与JFreeChart的结合则可以解决这个问题,它们可以实现在用户界面上无刷新地动态更新图表,提高交互性。 首先,我们需要了解DWR的基本原理。DWR在服务器端设置一个引擎,这个引擎可以映射到特定的Java方法,当...

    jfreechart 和jsp 结合折线图的一个例子

    本文将深入探讨如何将JFreeChart与JSP(JavaServer Pages)结合,以实现动态生成折线图的功能。 JFreeChart是一个开源的Java库,它允许开发人员生成高质量的、多样的图表,如折线图、柱状图、饼图等,可以用于报告...

    JFreeChart与JSP动态图表

    标题“JFreeChart与JSP动态图表”涉及的是在Java Web开发中利用JFreeChart库创建动态图表并与JSP(JavaServer Pages)结合的技术。JFreeChart是一个强大的开源Java库,用于生成高质量的2D图表,包括折线图、柱状图、...

    JfreeChart-雷达图与导出

    3. **添加到Chart**:然后,将`RadarPlot`对象添加到`JFreeChart`实例中,通常通过`JFreeChart.createRadarChart()`方法实现。 4. **自定义图表**:JFreeChart提供了丰富的API用于定制图表,例如调整字体、颜色、...

    applet_+_JfreeChart_实现曲线走势图

    本项目结合Applet和JFreeChart,目的是实现在网页上动态展示曲线走势图。 首先,理解Applet的基本概念是必要的。Applet是Java平台早期的一种特性,允许开发者创建可以在浏览器中运行的交互式小程序。为了在网页上...

    jfreechart_jdbc_demo

    总结来说,JFreeChart与JDBC的结合使用使得从数据库中获取的数据能够以直观的图形形式展示,这对于开发数据分析应用和仪表盘非常有益。通过熟练掌握这两者的结合,你可以创建出具有交互性、易于理解的图表,帮助用户...

    Java使用SWT JFreeChart控件实现的小游戏.zip

    Java使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的...

Global site tag (gtag.js) - Google Analytics