在Eclipse RCP中开发JFreeChart示例

转载自:http://www.blogjava.net/sterning/archive/2007/10/16/153302.html

   在Eclipse RCP中开发JFreeChart示例

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示例package jfreechatrcp;
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例import java.awt.Font;
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例import org.eclipse.swt.SWT;
    在Eclipse RCP中开发JFreeChart示例import org.eclipse.swt.widgets.Composite;
    在Eclipse RCP中开发JFreeChart示例import org.eclipse.ui.part.ViewPart;
    在Eclipse RCP中开发JFreeChart示例import org.jfree.chart.ChartFactory;
    在Eclipse RCP中开发JFreeChart示例import org.jfree.chart.JFreeChart;
    在Eclipse RCP中开发JFreeChart示例import org.jfree.chart.plot.PiePlot;
    在Eclipse RCP中开发JFreeChart示例import org.jfree.data.general.DefaultPieDataset;
    在Eclipse RCP中开发JFreeChart示例import org.jfree.data.general.PieDataset;
    在Eclipse RCP中开发JFreeChart示例import org.jfree.experimental.chart.swt.ChartComposite;
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例public class MyNewView extends ViewPart {
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    public MyNewView() {
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        // TODO Auto-generated constructor stub
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    }
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    private static PieDataset createDataset() {
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        DefaultPieDataset dataset = new DefaultPieDataset();
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        dataset.setValue("猪肉", new Double(43.2));
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        dataset.setValue("牛肉", new Double(10.0));
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        dataset.setValue("猪肉", new Double(27.5));
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        dataset.setValue("羊肉", new Double(17.5));
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        dataset.setValue("鸡肉", new Double(11.0));
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        dataset.setValue("鸭肉", new Double(19.4));
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        return dataset;
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    }
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    /**
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     * Creates a chart.
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     * 
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     * @param dataset
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     *            the dataset.
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     * 
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     * @return A chart.
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     */
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    private static JFreeChart createChart(PieDataset dataset) {
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        JFreeChart chart = 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, // include legend
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例                true, false);
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        PiePlot plot = (PiePlot) chart.getPlot();
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        plot.setSectionOutlinesVisible(false);
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        plot.setLabelFont(new Font("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示例        return chart;
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    }
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    public void createPartControl(Composite parent) {
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        JFreeChart chart = createChart(createDataset());
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例        final ChartComposite frame = new ChartComposite(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示例     * Passing the focus request to the viewer's control.
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例     */
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    public void setFocus() {
    在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示例package jfreechatrcp;
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例import org.eclipse.ui.IPageLayout;
    在Eclipse RCP中开发JFreeChart示例import org.eclipse.ui.IPerspectiveFactory;
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例public class Perspective implements IPerspectiveFactory {
    在Eclipse RCP中开发JFreeChart示例
    在Eclipse RCP中开发JFreeChart示例    public void createInitialLayout(IPageLayout layout) {
    在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 as Eclipse application

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

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

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