<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無為

    無為則可為,無為則至深!

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
    //=====================================================================
    //Title:JFreeChart入門指南
    //Author:謝莫鋒 Email:yyxmf111@sogou.com  QQ:35814522
    //=====================================================================
    一、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:用于生成圖象的幫助提示,不同類型圖表對應不同類型的工具提示類.
    * Description:This application is the first jfreechart
     * authort:謝莫鋒
     * 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
     * authort:謝莫鋒
     * 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);
      }
      
    }
    帶續..........稍后內容更加精彩

    凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
    、轉載請注明來處和原文作者。非常感謝。

    posted on 2007-06-29 12:40 草兒 閱讀(1856) 評論(2)  編輯  收藏 所屬分類: Java編程經驗談eclipse

    Feedback

    # re: JFreeChart介紹及經典入門資料 2007-10-11 14:47 火燒云
    請問,如何控制y軸的刻度,比如規定好一格多少。  回復  更多評論
      

    # re: JFreeChart介紹及經典入門資料 2007-10-11 14:48 火燒云
    能不能發個email給我。hplenovo@sina.com謝謝  回復  更多評論
      

    主站蜘蛛池模板: 久久亚洲AV无码西西人体| 国产国拍亚洲精品福利 | 中国性猛交xxxxx免费看| 亚洲国产小视频精品久久久三级| 亚洲成AV人片在WWW| 国产成人免费手机在线观看视频| 亚洲AV无码资源在线观看| 日本特黄特黄刺激大片免费| 性色av极品无码专区亚洲| 国产一卡二卡≡卡四卡免费乱码| 视频一区在线免费观看| 亚洲欧洲中文日韩久久AV乱码| 一级毛片免费在线| 亚洲av午夜福利精品一区人妖| 一区二区三区观看免费中文视频在线播放| 亚洲国产天堂在线观看| 免费v片在线观看视频网站| 亚洲欧美日韩中文二区| 亚洲国产一级在线观看| 在线观看肉片AV网站免费| 亚洲成人高清在线观看| 四虎影视大全免费入口| 一区二区3区免费视频| 亚洲精品国产成人99久久| 国产一精品一AV一免费孕妇| 男女作爱免费网站| 亚洲阿v天堂在线| 黄页网站在线观看免费高清| 苍井空亚洲精品AA片在线播放| 亚洲永久无码3D动漫一区| AV大片在线无码永久免费| 老司机亚洲精品影院在线观看 | 亚洲成人免费电影| 美国毛片亚洲社区在线观看| 亚洲精品乱码久久久久久按摩 | 国产亚洲精品免费视频播放| 亚洲高清日韩精品第一区| 国产精品jizz在线观看免费| 国偷自产一区二区免费视频| 亚洲最大无码中文字幕| 亚洲乱码中文字幕综合|