SVN8.COM - SVN中文技术网

投递文章 投稿指南 SVN中文技术网公告:技术交流诚聘优秀版主最新公告
搜索: 您的位置主页>JAVA技术>环境配置>JfreeChart 入门

JfreeChart 入门

SVN技术网 www.svn8.com 2008-09-23 01:22:51   来源:   作者:  评论:0 点击:

一、JFreeChart获取。
        JFreeChart
JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下:
        1
JFreeReport:报表解决工具
        2
JFreeChartJava图形解决方案(Application/Applet/Servlet/Jsp
        3
JCommonJFreeReportJFreeChart的公共类库
        4
JFreeDesignerJFreeReport的报表设计工具

   我们可以从jfree官方网站上获取最新版本(最新的版本是1.0.5)和相关资料(但是jfreeDeveloper Guides需要花美金才能获取),
    
获取地址:http://www.jfree.org/jfreechart/index.html(同时可以获得简明介绍)
    
我们以当前版本:jfreechart-1.0.0-rc3.tar.gz为例子进行说明

二、JFreeChart配置安装
    1
、解压jfreechart_0.9.21.zip到指定位置,其中sourcejfreechart的源码,jfreechart-0.9.21-demo.jar
       
是例子程序(该部分留给大家自己去研究)

    2
、为了配置成功,我们需要关注的文件有如下三个:jfreechart-0.9.21.jarlibjcommon-0.9.6.jar
       libgnujaxp.jar
    3
、如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%LIB中,同时在环境变量CLASSPATH中加入
       
如果是WEB开发,以TOMCAT中的一个WEB项目TEST为例子说明:
       
把上述三个文件拷贝到TESTWEB-INFLIB中,然后修改TESTWEB-INFweb.xml文件,在其中加入如下代码:
                <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>
               
至此jfreechart的配置就完成了,下面就可以进行jfreechart的开发了。这里值得提出的是jfreechart的类
       
结构设计前后兼容性不是很好,不同版本的jfreechart中类库结构可能不一样,有时候可能需要查源码。如果
       
是中文显示的时候可能依据观感需要改变源码的字体,不过我个人觉得这个版本比以前版本要好一些。

三、JFreeChart功能介绍
    JFreeChart
目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面:
    pie charts (2D and 3D)
:饼图(平面和立体)
    bar charts (regular and stacked, with an optional 3D effect)
:柱状图
    line and area charts
:曲线图
    scatter plots and bubble charts
    time series, high/low/open/close charts and candle stick charts
:时序图
    combination charts
:复合图
    Pareto charts
    Gantt charts
:甘特图
    wind plots, meter charts and symbol charts
    wafer map charts
    (
态图表,饼图(二维和三维) , 柱状图 (水平,垂直),线图,点图,时间变化图,甘特图股票行情图,混和图温度计图刻度图等常用商用图表)
    
图形可以导出成PNGJPEG格式,同时还可以与PDFEXCEL关联

    JFreeChart
核心类库介绍:
            
研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart,org.jfree.data。其中前者主要与图形 本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究,以后有时间我会告诉大家怎么去研究源码。
         
核心类主要有:
           org.jfree.chart.JFreeChart
:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
           org.jfree.data.category.XXXDataSet:
数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
           org.jfree.chart.plot.XXXPlot
:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要AxisRenderer以及数据集对象的支持
           org.jfree.chart.axis.XXXAxis
:用于处理图表的两个轴:纵轴和横轴
           org.jfree.chart.render.XXXRender
:负责如何显示一个图表对象
           org.jfree.chart.urls.XXXURLGenerator:
用于生成Web图表中每个项目的鼠标点击链接
           XXXXXToolTipGenerator:
用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
    
四、JFreeChart开发(Application/Applet

one: pie charts

 

 

  1. /**
  2.  * Description:This application is the first jfreechart
  3.  * authort:Jetter
  4.  * Datetime:2008-09-17
  5.  */
  6. package com.ghg.java;
  7. import org.jfree.data.general.DefaultPieDataset;
  8. import org.jfree.chart.*;
  9. public class JfreeChartTest {
  10.     public static void main(String[] args) {
  11.        //创建饼图数据对象
  12.        DefaultPieDataset dfp=new DefaultPieDataset();
  13.        dfp.setValue("管理人员"25);
  14.        dfp.setValue("市场人员"35);
  15.        dfp.setValue("开发人员"20);
  16.        dfp.setValue("后勤人员"5);
  17.        dfp.setValue("财务人员"15);
  18.         //Create JFreeChart object
  19.        JFreeChart a =ChartFactory.createPieChart("CityInfoPort公司组织架构图",dfp, truetruetrue);
  20.        ChartFrame  frame=new ChartFrame ("CityInfoPort公司组织架构图 ",a,true);
  21.        frame.pack();
  22.        frame.setVisible(true);
  23. }
  24. }

进一步修改,测试通过。。。。。

  1. package com.fanzhang.testChart;
  2. /**
  3.  * Description:This application is the first jfreechart
  4.  * authort:Jetter
  5.  * Datetime:2008-09-17
  6.  */
  7. import org.jfree.chart.JFreeChart;
  8. import org.jfree.chart.ChartPanel;
  9. import org.jfree.chart.ChartFactory;
  10. import org.jfree.chart.ChartFrame;
  11. import org.jfree.data.general.DefaultPieDataset;
  12. import org.jfree.chart.plot.PiePlot;
  13. import org.jfree.data.general.PieDataset;
  14. import org.jfree.ui.ApplicationFrame;
  15. import org.jfree.ui.RefineryUtilities;
  16. import java.awt.Font;
  17. import javax.swing.*;
  18. public class JfreeChart_03 extends ApplicationFrame {
  19.  //构造函数
  20.  public JfreeChart_03(String s) {
  21.   super(s);
  22.   setContentPane(createDemoPanel());
  23.  }
  24.  public static void main(String[] args) {
  25.   JfreeChart_03 fjc = new JfreeChart_03("CityInfoPort公司组织架构图");
  26.   fjc.pack();
  27.   RefineryUtilities.centerFrameOnScreen(fjc);
  28.   fjc.setVisible(true);
  29.  }
  30.  //生成饼图数据集对象
  31.  public static PieDataset createDataset() {
  32.   DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
  33.   defaultpiedataset.setValue("管理人员"10.02D);
  34.   defaultpiedataset.setValue("市场人员"20.23D);
  35.   defaultpiedataset.setValue("开发人员"60.02D);
  36.   defaultpiedataset.setValue("OEM人员"10.02D);
  37.   defaultpiedataset.setValue("其他人员"5.11D);
  38.   return defaultpiedataset;
  39.  }
  40.  //生成图表主对象JFreeChart
  41.  public static JFreeChart createChart(PieDataset piedataset) {
  42.   //定义图表对象
  43.   JFreeChart jfreechart = ChartFactory.createPieChart(
  44.     "CityInfoPort公司组织架构图", piedataset, truetruefalse);
  45.   //获得图表显示对象
  46.   PiePlot pieplot = (PiePlot) jfreechart.getPlot();
  47.   //设置图表标签字体
  48.   pieplot.setLabelFont(new Font("SansSerif", Font.BOLD, 12));
  49.   pieplot.setNoDataMessage("No data available");
  50.   pieplot.setCircular(true);
  51.   pieplot.setLabelGap(0.01D);//间距
  52.   return jfreechart;
  53.  }
  54.  //生成显示图表的面板
  55.  public static JPanel createDemoPanel() {
  56.   JFreeChart jfreechart = createChart(createDataset());
  57.   return new ChartPanel(jfreechart);
  58.  }
  59. }


技术交流 录入:SVN中文技术网[www.svn8.com]
Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - RSS订阅 - 网站地图 - 返回顶部