在Eclipse RCP中开发JFreeChart示例

时间:2024-04-13 14:07:09
RCP,就是Rich Client Platform的缩写,即富客户平台,是Eclipse进化的产物(自3.0版以后出现),是Eclipse组织向用户提供的强大的开放性开发平台,能够使用户方便地创建自己的基于Eclipse的应用程序,并且这些应用程序能够得到Eclipse的底层支持。更重要的是,我们可以利用Java创建象Eclipse这么漂亮的桌面程序。

  有人说,RCP一定会变得非常流行。因为RCP,可以开发界面象Eclipse这样漂亮的桌面程序。那就来做一个JFreeChat的示例吧。

一、下载JFreeChart包

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

2.用到的包:(注,我的开发环境是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的内容在Google上一搜一大把,有些人会觉得乏味,但是没关系,这只是一个快速的起步。下面大致说一下。有不明白的,可以参考http://www.vogella.de/articles/RichClientPlatform/article.html#using_jars,非常的详细

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

2、还需要在项目的META-INF/MANIFEST.MF文件的“runtime”中加入以上的包,不然运行时会说找不相关的类,如下图
在Eclipse RCP中开发JFreeChart示例

三、建立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",
在Eclipse RCP中开发JFreeChart示例

2.点击右边class*.;链接,来创建新的类

在Eclipse RCP中开发JFreeChart示例

在Eclipse RCP中开发JFreeChart示例

3.此类的代码如下

在Eclipse RCP中开发JFreeChart示例packagejfreechatrcp;
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
importjava.awt.Font;
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
importorg.eclipse.swt.SWT;
在Eclipse RCP中开发JFreeChart示例
importorg.eclipse.swt.widgets.Composite;
在Eclipse RCP中开发JFreeChart示例
importorg.eclipse.ui.part.ViewPart;
在Eclipse RCP中开发JFreeChart示例
importorg.jfree.chart.ChartFactory;
在Eclipse RCP中开发JFreeChart示例
importorg.jfree.chart.JFreeChart;
在Eclipse RCP中开发JFreeChart示例
importorg.jfree.chart.plot.PiePlot;
在Eclipse RCP中开发JFreeChart示例
importorg.jfree.data.general.DefaultPieDataset;
在Eclipse RCP中开发JFreeChart示例
importorg.jfree.data.general.PieDataset;
在Eclipse RCP中开发JFreeChart示例
importorg.jfree.experimental.chart.swt.ChartComposite;
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
publicclassMyNewViewextendsViewPart在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
publicMyNewView()在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
//TODOAuto-generatedconstructorstub
在Eclipse RCP中开发JFreeChart示例

在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
privatestaticPieDatasetcreateDataset()在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例DefaultPieDatasetdataset
=newDefaultPieDataset();
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例dataset.setValue(
"猪肉",newDouble(43.2));
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例dataset.setValue(
"牛肉",newDouble(10.0));
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例dataset.setValue(
"猪肉",newDouble(27.5));
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例dataset.setValue(
"羊肉",newDouble(17.5));
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例dataset.setValue(
"鸡肉",newDouble(11.0));
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例dataset.setValue(
"鸭肉",newDouble(19.4));
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
returndataset;
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
/***//**
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例*Createsachart.
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例*
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例*
@paramdataset
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例*thedataset.
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例*
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例*
@returnAchart.
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
*/

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
privatestaticJFreeChartcreateChart(PieDatasetdataset)在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例JFreeChartchart
=ChartFactory.createPieChart("肉食品消费统计图示例",//chart
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
//title
在Eclipse RCP中开发JFreeChart示例

在Eclipse RCP中开发JFreeChart示例dataset,
//data
在Eclipse RCP中开发JFreeChart示例

在Eclipse RCP中开发JFreeChart示例
true,//includelegend
在Eclipse RCP中开发JFreeChart示例

在Eclipse RCP中开发JFreeChart示例
true,false);
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例PiePlotplot
=(PiePlot)chart.getPlot();
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例plot.setSectionOutlinesVisible(
false);
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例plot.setLabelFont(
newFont("SansSerif",Font.PLAIN,12));
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例plot.setNoDataMessage(
"没有统计数据");
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例plot.setCircular(
false);
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例plot.setLabelGap(
0.02);
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
returnchart;
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
publicvoidcreatePartControl(Compositeparent)在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例JFreeChartchart
=createChart(createDataset());
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
finalChartCompositeframe=newChartComposite(parent,SWT.NONE,
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例chart,
true);
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
/***//**
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例*Passingthefocusrequesttotheviewer'scontrol.
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
*/

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
publicvoidsetFocus()在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例


4.修改Perspective类,使程序能够运行

在Eclipse RCP中开发JFreeChart示例packagejfreechatrcp;
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例
importorg.eclipse.ui.IPageLayout;
在Eclipse RCP中开发JFreeChart示例
importorg.eclipse.ui.IPerspectiveFactory;
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
publicclassPerspectiveimplementsIPerspectiveFactory在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例在Eclipse RCP中开发JFreeChart示例
publicvoidcreateInitialLayout(IPageLayoutlayout)在Eclipse RCP中开发JFreeChart示例{
在Eclipse RCP中开发JFreeChart示例layout.addView(
"jfreechatrcp.MyNewView",IPageLayout.TOP,IPageLayout.RATIO_MAX,IPageLayout.ID_EDITOR_AREA);
在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例
在Eclipse RCP中开发JFreeChart示例}

在Eclipse RCP中开发JFreeChart示例

5.运行程序
META-INF/MANIFEST.MF》》Launch asEclipse application

四、结果
在Eclipse RCP中开发JFreeChart示例

源代码jfreechatRCP.rar,请自行下载jfreechart包

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