<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

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

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

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

      有人說,RCP一定會(huì)變得非常流行。因?yàn)?strong style="color: black; background-color: #a0ffff">RCP,可以開發(fā)界面象Eclipse這樣漂亮的桌面程序。那就來做一個(gè)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


    二、新建項(xiàng)目

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

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

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


    三、建立View

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

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


    2.點(diǎn)擊右邊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("肉食品消費(fèi)統(tǒng)計(jì)圖示例"// 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)計(jì)數(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類,使程序能夠運(yùn)行

    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.運(yùn)行程序
    META-INF/MANIFEST.MF》》Launch as Eclipse application

    四、結(jié)果


    源代碼jfreechatRCP.rar,請(qǐng)自行下載jfreechart包

    參考文獻(xiàn)
    http://www.vogella.de/articles/RichClientPlatform/article.html#firstplugin
    http://www.vogella.de/articles/EclipseJFreeChart/article.html


  • 評(píng)論

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

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


    以前費(fèi)了老大勁寫的能顯示報(bào)表的view

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

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

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

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

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

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

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

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

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

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

    2015-07-29 15:44 by 果凍
    謝謝樓主,不過樓主應(yīng)該還沒說完吧?需要在runtime的classpath中把以上的包加入進(jìn)去,否則會(huì)出現(xiàn)問題:無法實(shí)例化類
    主站蜘蛛池模板: www国产亚洲精品久久久| 亚洲色大成网站WWW久久九九 | 一区二区三区亚洲| 暖暖免费高清日本中文| aa毛片免费全部播放完整| 亚洲成a人片77777群色| 又粗又大又长又爽免费视频| 日本人成在线视频免费播放| 国产成人人综合亚洲欧美丁香花| 日韩亚洲欧洲在线com91tv| 日韩免费一区二区三区在线播放| 二级毛片免费观看全程| 亚洲免费观看在线视频| 亚洲精品国产电影| 日本高清在线免费| 国产精品永久免费视频| 亚洲人成网站在线在线观看 | 亚洲色大成网站www尤物| 国产亚洲情侣一区二区无| 免费福利网站在线观看| 东北美女野外bbwbbw免费| 亚洲另类无码专区首页| 亚洲综合婷婷久久| 亚洲综合亚洲综合网成人| 中国在线观看免费国语版| 国产一精品一AV一免费| 边摸边吃奶边做爽免费视频99| 亚洲精品在线网站| 亚洲色成人中文字幕网站| 热久久精品免费视频| 国产在线jyzzjyzz免费麻豆| 一级成人a免费视频| 亚洲一区二区观看播放| 亚洲美女视频网址| 亚洲va中文字幕无码久久| 国产综合精品久久亚洲| 日韩亚洲精品福利| 日韩免费无砖专区2020狼| 最近免费中文字幕大全免费版视频| 久草免费福利在线| 一级毛片免费毛片毛片|