键者天行

天行键,君子以自强不息;地势坤,君子以厚德载物!

sheng chenID:chensheng913
1198915次访问,排名15好友0人,关注者17
天行键,君子以自强不息;
地势坤,君子以后德载物。
chensheng913的文章
原创 676 篇
翻译 0 篇
转载 85 篇
评论 1013 篇
chensheng913的公告
    首页         留言
本站总访问量:

当前页访问量:


与我联系:我的EMAIL
月 [下月] [上月]

天气预报

最近评论
flying_all:是否是一个公共变量,不仅要看是不是有static关键字,其实更应该看JVM是怎样分配空间的。如果在JVM中一个类的多个实例访问的是同一块内存,那就是公共变量了。谢谢。
flying_all:是否是一个公共变量,不仅要看是不是有static关键字,其实更应该看JVM是怎样分配空间的。如果在JVM中一个类的多个实例访问的是同一块内存,那就是公共变量了。谢谢。
hymcn:不错,学习。
hymcn:好贴!!
hymcn:好贴!!
文章分类
收藏
相册
搞笑娱乐
窈窕淑女
友情Blog
!Java的专栏
Baggico的专栏
feng_sundy的专栏
八进制的专栏
嘟嘟狼的专栏
潇潇的新生活
笨笨的专栏
编程夜未眠的专栏
阿赖的个性空间
韩磊的专栏
珍藏链接
《CSDN社区电子杂志-Java杂志》官方Blog
《CSDN社区电子杂志-Oracle杂志》官方Blog
侯捷专栏
执子之手,与子偕老
王森专栏
科诺专栏
蔡学镛专栏
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 JFreeChart介绍及经典入门资料收藏

新一篇: ORACLE回滚段表空间数据文件丢失或损坏处理方法(转) | 旧一篇: 修炼一名程序员的职业水准

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

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

二、JFreeChart配置安装
    1、解压jfreechart_0.9.21.zip到指定位置,其中source是jfreechart的源码,jfreechart-0.9.21-demo.jar
       是例子程序(该部分留给大家自己去研究)
    2、为了配置成功,我们需要关注的文件有如下三个:jfreechart-0.9.21.jar、lib\jcommon-0.9.6.jar、
       lib\gnujaxp.jar
    3、如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%\LIB中,同时在环境变量CLASSPATH中加入
       如果是WEB开发,以TOMCAT中的一个WEB项目TEST为例子说明:
       把上述三个文件拷贝到TEST\WEB-INF\LIB中,然后修改TEST\WEB-INF\web.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
    (态图表,饼图(二维和三维) , 柱状图 (水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表)
    图形可以导出成PNG和JPEG格式,同时还可以与PDF和EXCEL关联
    
    JFreeChart核心类库介绍:
            研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart,org.jfree.data。其中前者主要与图形
    本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究,以后有时间我会告诉大家怎么去
    研究源码。
         核心类主要有:
           org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
           org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
           org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
           org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴
           org.jfree.chart.render.XXXRender:负责如何显示一个图表对象
           org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接
           XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
    
四、JFreeChart开发(Application/Applet)
1、pie charts,代码如下
/**
 * Description:This application is the first jfreechart
 * Datetime:20058-02-11
 */
package demo;

import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.data.general.DefaultPieDataset;

public class FirstJFreeChart {
  public FirstJFreeChart() {
  }
  
  public static void main(String[] args){
    DefaultPieDataset dpd = new DefaultPieDataset();
    dpd.setValue("管理人员",25);
    dpd.setValue("市场人员",25);
    dpd.setValue("开发人员",45);
    dpd.setValue("其他人员",5);
    
    //Create JFreeChart object
    //参数可以查看源码
    JFreeChart pieChart = ChartFactory.createPieChart("CityInfoPort公司组织架构图",dpd,true,true,false);
    ChartFrame pieFrame = new ChartFrame("CityInfoPort公司组织架构图",pieChart);
    pieFrame.pack();
    pieFrame.setVisible(true);
  }
}

上面例子可以进一步改进,如下:
/**
 * Description:This application is the first jfreechart
 * Datetime:20058-02-11
 */
package com.cityinforport.demo;

import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import java.awt.Font;
import javax.swing.*;


public class FirstJFreeChart extends ApplicationFrame {
  //构造函数
  public FirstJFreeChart(String s){
    super(s);
    setContentPane(createDemoPanel());
  }
  
  public static void main(String[] args){
    FirstJFreeChart fjc = new FirstJFreeChart("CityInfoPort公司组织架构图");
    fjc.pack();
    RefineryUtilities.centerFrameOnScreen(fjc);
    fjc.setVisible(true);
  }
  
  //生成饼图数据集对象
  public static PieDataset createDataset(){
    DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
    defaultpiedataset.setValue("管理人员",10.02D);
    defaultpiedataset.setValue("市场人员",20.23D);
    defaultpiedataset.setValue("开发人员",60.02D);
    defaultpiedataset.setValue("OEM人员",10.02D);
    defaultpiedataset.setValue("其他人员",5.11D);
    
    return defaultpiedataset;
  }
  
  //生成图表主对象JFreeChart
  public static JFreeChart createChart(PieDataset piedataset){
    //定义图表对象
    JFreeChart jfreechart = ChartFactory.createPieChart("CityInfoPort公司组织架构图",piedataset,true,true,false);
    //获得图表显示对象
    PiePlot pieplot = (PiePlot)jfreechart.getPlot();
    //设置图表标签字体
    pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,12));
    pieplot.setNoDataMessage("No data available");
    pieplot.setCircular(true);
    pieplot.setLabelGap(0.01D);//间距
    
    return jfreechart;
  }
  
  //生成显示图表的面板
  public static JPanel createDemoPanel(){
    JFreeChart jfreechart = createChart(createDataset());
    return new ChartPanel(jfreechart);
  }
  
}

发表于 @ 2005年07月04日 15:28:00|评论(loading...)|编辑

新一篇: ORACLE回滚段表空间数据文件丢失或损坏处理方法(转) | 旧一篇: 修炼一名程序员的职业水准

评论

#fastzch 发表于2006-04-07 17:43:00  IP: 10.5.2.*
能把JFreeDesigner给我发一份吗?
我有SF上面下不下来,CVS连不上,谢谢了!

email:fastzch@tom.com
#kingsong13474679 发表于2007-02-02 12:56:45  IP: 221.219.101.*
我的环境是:JDK1.5,ECLIPSE3.2和TOMCAT5.5.20。

我下载了jcommon-1.0.8和jfreechart-1.0.3两个压缩包,
jcommon-1.0.8没有用到。
解压jfreechart-1.0.3后把jfreechart-1.0.3\lib里面的:jfreechart-1.0.3.jar,jcommon-1.0.6.jar,gnujaxp.jar
三个文件考到了TOMCAT项目的\WEB-INF\lib下面
修改了\WEB-INF\web.xml
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servletclass>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>

在TOMCAT里怎么也起不来这个项目的服务,把web.xml文件删掉这个项目就可以起来了。
是web.xml配置问题吗?
classpath路径用不用加上?

谢谢!!请赐教
#wpplvhq 发表于2008-01-18 10:54:06  IP: 121.229.88.*
不错啊
我也看到了
非常感谢
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © chensheng913