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

true, false);



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