您的位置:首页 >> 编程开发 >> Java >> Java基础 >> Eclipse >> 正文
Eclipse RSS
 

Eclipse界面编写实例(1)--扩展TitleAreaDialog

http://www.rdxx.com 06年12月10日 00:29 Blog 我要投稿

关键词: 实例 , 扩展 , 界面 , Eclipse , Dialog , IT , IP , read

    TitleAreaDialogEclipseJface组件包中提供的一个对话框,它提供了一个可以显示标题、提示信息以及一个图标的区域,以及一个包含实际内容的区域,并默认提供了两个按钮。最显着的例子就是新建向导和导入导出的向导(这两个粒子都是扩展的Wizard,但对话框本身扩展的WizardDialog,而后者正是从TitleAreaDialog扩展而来)。本文档详细介绍如何从TitleAreaDialog创建自己的对话框。本例实现了如图所示的界面:

    按照常规方式创建工程,并准备资源文件。其中钥匙图标文件是icons/loginkey.gif。本例创建的对话框是WorkListLoginDialog。具体实现可以参考ChooseWorkspaceDialog,本文件实现了在Eclipse启动时工作区的选择功能。

    默认的,需要重写createDialogArea。本方法创建了OKCancel按钮上方的内容。一下代码是本例实现的代码,添加了详细的注释:

protected Control createDialogArea(Composite parent) {

    //获取产品名称,可以参考本段代码

    String productName = null;

    IProduct product = Platform.getProduct();

    if (product != null) {

       productName = product.getName();//productName就是产品名称了

    }

    if (productName == null) {

        productName=WorkListPlugin.getResourceString(

"esip.defaultProductName");

    }

    Composite composite = (Composite)

super.createDialogArea(parent);

//设置图标,注意我们采用AbstractUIPlugin.imageDescriptorFromPlugin

//从插件的icons目录中加载,不能直接使用ImageDescriptor. CreateFromFile()

//它需要绝对路径。而前者通过建立正确的路径,最终调用了//ImageDescriptor.createFromURL()

setTitleImage(AbstractUIPlugin.imageDescriptorFromPlugin(       WorkListPlugin.getDefault().getPluginId(),

"icons/loginkey.gif").createImage());

    //设置标题

setTitle(WorkListPlugin

                .getResourceString("dialog.title")); 

//设置提示信息

setMessage(MessageFormat.format(WorkListPlugin

.getResourceString(

"dialog.message"), new Object[] { productName }));

    //自定义要创建的内容

    createContentPane(composite);

    createLoginControls();

    return composite;

}  

其中自定义createContentPane创建了一个Composite用于摆放登录标签和输入框,createLoginControls创建了“用户名”“密码”标签和相应的输入框。如下:

private void createContentPane(Composite parent){

contentPane= new Composite(parent,SWT.NULL);

//采用三列的GridLayout

GridLayout layout=new GridLayout(3,false);

//以下数值通过实验调整得出,这样看起来能够使输入框在中间位置,比较美观

layout.marginHeight = 20;

layout.marginWidth = 70;

layout.verticalSpacing = 10;

layout.horizontalSpacing=10;

contentPane.setLayout(layout);

//注意充满FILL_BOTH

ContentPane.setLayoutData(new GridData(GridData.FILL_BOTH));

contentPane.setFont(parent.getFont());

}

private void createLoginControls(){

共2页  第1页 第2页


 
 
标签: 实例 , 扩展 , 界面 , Eclipse , Dialog , IT , IP , read 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站