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

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

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

    posts - 310, comments - 6939, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    在Eclipse RCP中開發(fā)JFreeChart示例

    Posted on 2007-10-16 16:25 詩特林 閱讀(6297) 評論(6)  編輯  收藏 所屬分類: Java
                                                   在Eclipse RCP中開發(fā)JFreeChart示例

    RCP,就是Rich Client Platform的縮寫,即富客戶平臺,是Eclipse進化的產(chǎn)物(自3.0版以后出現(xiàn)),是Eclipse組織向用戶提供的強大的開放性開發(fā)平臺,能夠使用戶方便地創(chuàng)建自己的基于Eclipse的應(yīng)用程序,并且這些應(yīng)用程序能夠得到Eclipse的底層支持。更重要的是,我們可以利用Java創(chuàng)建象Eclipse這么漂亮的桌面程序。

      有人說,RCP一定會變得非常流行。因為RCP,可以開發(fā)界面象Eclipse這樣漂亮的桌面程序。那就來做一個JFreeChat的示例吧。

    一、下載JFreeChart包

    1.http://www.jfree.org/jfreechart/

    2.用到的包:(注,我的開發(fā)環(huán)境是eclipse3.2)
  • jcommon-1.0.10.jar

  • jfreechart-1.0.6.jar

  • jfreechart-1.0.6-experimental.jar

  • jfreechart-1.0.6-swt.jar

  • swtgraphics2d.jar


    二、新建項目

    在Eclipse下如何建立plug-in的內(nèi)容在Google上一搜一大把,有些人會覺得乏味,但是沒關(guān)系,這只是一個快速的起步。下面大致說一下。有不明白的,可以參考http://www.vogella.de/articles/RichClientPlatform/article.html#using_jars,非常的詳細(xì)

    1、建完項目后記得把上面提到的JFreeChart包加入的項目“Propertires”的“Java Build Path”中。

    2、還需要在項目的META-INF/MANIFEST.MF文件的“runtime”中加入以上的包,不然運行時會說找不相關(guān)的類,如下圖


    三、建立View

    建View在上面文檔http://www.vogella.de/articles/RichClientPlatform/article.html#using_jars中5.2. Add a view to your application有講,我在這里大致上幾個圖說明一下。

    1.點擊配置文件的“extensions”,選擇"org.eclipse.views",右鍵,》"new"》"view",


    2.點擊右邊class*.;鏈接,來創(chuàng)建新的類




    3.此類的代碼如下

    package jfreechatrcp;

    import java.awt.Font;

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.ui.part.ViewPart;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.PiePlot;
    import org.jfree.data.general.DefaultPieDataset;
    import org.jfree.data.general.PieDataset;
    import org.jfree.experimental.chart.swt.ChartComposite;



    public class MyNewView extends ViewPart {



        
    public MyNewView() {

            
    // TODO Auto-generated constructor stub

        }



        
    private static PieDataset createDataset() {

            DefaultPieDataset dataset 
    = new DefaultPieDataset();

            dataset.setValue(
    "豬肉"new Double(43.2));

            dataset.setValue(
    "牛肉"new Double(10.0));

            dataset.setValue(
    "豬肉"new Double(27.5));

            dataset.setValue(
    "羊肉"new Double(17.5));

            dataset.setValue(
    "雞肉"new Double(11.0));

            dataset.setValue(
    "鴨肉"new Double(19.4));

            
    return dataset;

        }




        
    /**

         * Creates a chart.

         * 

         * 
    @param dataset

         *            the dataset.

         * 

         * 
    @return A chart.

         
    */


        
    private static JFreeChart createChart(PieDataset dataset) {



            JFreeChart chart 
    = ChartFactory.createPieChart("肉食品消費統(tǒng)計圖示例"// chart

                    
    // title

                    dataset, 
    // data

                    
    true// include legend

                    
    truefalse);



            PiePlot plot 
    = (PiePlot) chart.getPlot();

            plot.setSectionOutlinesVisible(
    false);

            plot.setLabelFont(
    new Font("SansSerif", Font.PLAIN, 12));

            plot.setNoDataMessage(
    "沒有統(tǒng)計數(shù)據(jù)");

            plot.setCircular(
    false);

            plot.setLabelGap(
    0.02);

            
    return chart;



        }




        
    public void createPartControl(Composite parent) {

            JFreeChart chart 
    = createChart(createDataset());

            
    final ChartComposite frame = new ChartComposite(parent, SWT.NONE,

                    chart, 
    true);

        }




        
    /**

         * Passing the focus request to the viewer's control.

         
    */


        
    public void setFocus() {

        }


        
    }



    4.修改Perspective類,使程序能夠運行

    package jfreechatrcp;

    import org.eclipse.ui.IPageLayout;
    import org.eclipse.ui.IPerspectiveFactory;

    public class Perspective implements IPerspectiveFactory {

        
    public void createInitialLayout(IPageLayout layout) {
            layout.addView(
    "jfreechatrcp.MyNewView", IPageLayout.TOP,IPageLayout.RATIO_MAX, IPageLayout.ID_EDITOR_AREA);
        }


    }


    5.運行程序
    META-INF/MANIFEST.MF》》Launch as Eclipse application

    四、結(jié)果


    源代碼jfreechatRCP.rar,請自行下載jfreechart包

    參考文獻
    http://www.vogella.de/articles/RichClientPlatform/article.html#firstplugin
    http://www.vogella.de/articles/EclipseJFreeChart/article.html


  • 評論

    # re: 在Eclipse RCP中開發(fā)JFreeChart示例  回復(fù)  更多評論   

    2007-10-16 16:58 by 交口稱贊
    我暈死
    現(xiàn)在有ChartComposite 了啊。。。。


    以前費了老大勁寫的能顯示報表的view

    現(xiàn)在就一行代碼。。。。。。。。。。。

    # re: 在Eclipse RCP中開發(fā)JFreeChart示例  回復(fù)  更多評論   

    2007-10-17 07:45 by 翔南
    呵呵 好東西!
    收藏啦

    # re: 在Eclipse RCP中開發(fā)JFreeChart示例[未登錄]  回復(fù)  更多評論   

    2007-10-17 09:27 by 阿蜜果
    嘻嘻,這東西好!

    # re: 在Eclipse RCP中開發(fā)JFreeChart示例  回復(fù)  更多評論   

    2007-12-24 13:51 by GentleYang
    俺一同事瘋狂追逐著RCP......個人 作品都好幾個嘞

    # re: 在Eclipse RCP中開發(fā)JFreeChart示例  回復(fù)  更多評論   

    2009-10-09 09:54 by 陶林
    您好!我們公司最近在做個RCP的項目,要用到JFreeChart畫圖。我也照著您這個模式做了一個在RCP中開發(fā)JFreeChart的一個實例,代碼基本上都是拷貝您的,但是我運行的時候出問題了,視圖里沒有我要的餅圖,只顯示一個錯誤“無法創(chuàng)建視圖:插件“Plugin0927”無法實例化類“plugin0927.ui.TeachUnitClass”。”我的RCP項目名“Plugin0927”,視圖類是“TeachUnitClass”。打開這個錯誤,看到里面有一句是:“Java.lang.NoClassDefFoundError:org/jfree/data/general/PieDataset”。后來仔細(xì)研究您的這篇博客,發(fā)現(xiàn)問題出在“2、還需要在項目的META-INF/MANIFEST.MF文件的“runtime”中加入以上的包,不然運行時會說找不相關(guān)的類”!現(xiàn)在已經(jīng)解決問題!非常謝謝您的這篇博客!這個問題已經(jīng)困擾我好幾天了,國慶長假里一直在思考這個問題!

    # re: 在Eclipse RCP中開發(fā)JFreeChart示例[未登錄]  回復(fù)  更多評論   

    2015-07-29 15:44 by 果凍
    謝謝樓主,不過樓主應(yīng)該還沒說完吧?需要在runtime的classpath中把以上的包加入進去,否則會出現(xiàn)問題:無法實例化類
    主站蜘蛛池模板: 人人狠狠综合久久亚洲婷婷| 浮力影院第一页小视频国产在线观看免费 | 国产亚洲一卡2卡3卡4卡新区 | 成人免费视频77777| 综合偷自拍亚洲乱中文字幕| 中文字幕精品亚洲无线码二区| 3344免费播放观看视频| 精品亚洲福利一区二区| 亚洲AV无码专区在线播放中文| 成年男女免费视频网站| 久草免费福利在线| 亚洲免费福利在线视频| 亚洲人成网7777777国产| 成人看的午夜免费毛片| 国产午夜精品免费一区二区三区| 亚洲一区二区无码偷拍| 亚洲国产精品热久久| 国产乱弄免费视频| 在线视频免费观看爽爽爽| 国产精品一区二区三区免费| 亚洲三级高清免费| 亚洲午夜精品久久久久久人妖| 免费国产在线观看| 欧美a级成人网站免费| a级毛片无码免费真人久久| 精品国产亚洲第一区二区三区| 亚洲视频一区二区三区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区| 亚洲电影免费在线观看| 中文字幕的电影免费网站| 国产亚洲高清在线精品不卡| 亚洲一卡2卡4卡5卡6卡在线99 | 免费一级毛片女人图片| 国产精品美女午夜爽爽爽免费| 精品国产免费一区二区三区香蕉| 国产亚洲美女精品久久| 国产亚洲精品bv在线观看| 亚洲一区在线视频观看| 色播亚洲视频在线观看| 亚洲成A人片在线观看WWW| 亚洲国产精品专区在线观看|