<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í)例化類
    主站蜘蛛池模板: 久久丫精品国产亚洲av| 免费高清在线影片一区| 日本免费污片中国特一级| 国产在线国偷精品免费看| 久久久久久久久久免免费精品 | 国产亚洲综合成人91精品 | 免费精品国偷自产在线在线| 久久久久免费看成人影片| 95免费观看体验区视频| 亚洲一区二区三区免费观看| 亚洲免费福利在线视频| 午夜宅男在线永久免费观看网| 在线观看的免费网站| 精品久久久久久久免费加勒比| 国产在线ts人妖免费视频| 亚洲AV成人精品日韩一区18p| 国产精品亚洲综合一区| 亚洲精品自产拍在线观看| 久久精品亚洲综合专区| 亚洲一级毛片在线播放| 亚洲色偷偷偷综合网| 一级毛片完整版免费播放一区| 久久久WWW成人免费精品| 无码国产精品一区二区免费模式 | 69国产精品视频免费| 免费阿v网站在线观看g| 女人18毛片a级毛片免费| www.亚洲精品.com| 国产亚洲精品a在线观看app| 亚洲中字慕日产2021| 最新亚洲人成无码网www电影| 国产福利免费视频| 99久久免费观看| 永久在线毛片免费观看| 国产AV无码专区亚洲AV漫画| 99久久精品国产亚洲| 亚洲免费综合色在线视频| a级毛片免费高清视频| 成人午夜免费福利视频| 日韩精品电影一区亚洲| 亚洲国产综合精品中文第一区|