- 浏览: 149496 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
EclipseEye:
fair_jm 写道不错 蛮详细的 谢谢分享
SWT/JFace专题 --- SWT中Display和多线程 -
fair_jm:
不错 蛮详细的 谢谢分享
SWT/JFace专题 --- SWT中Display和多线程
对话框向导(Dialogs Wizards)
对话框和向导通常被看做模态UI,它们限制用户输入请求的信息。模态UI通常用于程序在运行其他处理之前搜集和分发信息的场合,并且搜集和分发信息的过程不需要同其他的界面元素交互便可以完成;而视图和编辑器是非模态UI,用户可以自由地和工作台中的所有资源交互,并没有限定用户同它们的交互顺序。
-----------
对话框类别
SWT对话框和JFace对话框,它们是两种不同的对话框层次。
SWT对话框类(继承了抽象类org.eclipse.swt.widgets.Dialog)为作为SWT插件一部分实现的对话框提供了支持,如文件对话框、目录对话框,这些对话框自身就是SWT小部件,是内置平台对话框的Java表示,这意味着在不同的运行平台上,它们的内部实现可能不同。这些对话框为插件提供了与平台相适应的外观,因此,开发者只需要使用这些对话框即可。
JFace对话框是独立于平台的对话框(上面提到过,JFace舍弃了SWT的平台相关的部分,对一些常见的功能的封装,也就是说JFace相关的部件都是平台无关的),它们是向导页面,属性页面,首选项页面的实现基础。JFace支持开发者构建特定的对话框,在JFace对话框不能满足需求的情况下可以自定义实现。
1.SWT对话框
Eclipse实现的SWT对话框类提供了与底层平台特定对话框的平台无关性接口,它们都位于org.eclipsee.ui.swt.widgets包中。
SWT对话框有:
ColorDialog--提示用户从可用颜色的预定义集中选择一种颜色
DirectoryDialog--提示用户浏览文件系统,并选择或新建一个文件夹(SWT.SAVE表示新建文件夹,SWT.OPEN表示选择现有文件夹)
FileDialog--提示用户浏览文件系统,并选择或新建一个文件名(SWT.SAVE表示新建文件,SWT.OPEN表示选择现有文件)
FontDialog--提示用户从系统所有可用字体中选择一种字体
MessageBox--给用户显示一条消息
PrintDialog--提示用户选择一个打印机和开始打印任务之前的各种相关参数
2.JFace对话框
org.eclipse.jface.dialogs提供了一些实现标准对话框的类,所有这些对话框都是JFace抽象类Dialog的子类。Dialog类继承自Window类,二者的生命周期相似,不同于Window的是,Dialog已经定义好了对话框的基本框架,开发者不需要重写createContents()方法来创建内容,而应该重写createDialogArea(),createButtonBar(),createButtonsForButtonBar()三个方法来构建特定的对话框。
常用的JFace对话框:
它们位于org.eclipse.jface.dialogs和org.eclipse.ui.dialogs包中。
1)位于org.eclipse.jface.dialogs包的
MessageDialog--显示一条消息,可以显示一个合适的图像,图像选项:none,error,information,
question,warning
InputDialog--提供输入框,接收用户输入的值
ProgressMonitorDialog--执行长时间运行的任务需要提醒用户运行状态时,可以使用该对话
框。
ErrorDialog--向用户显示一个或多个错误,如果提供了错误的细节描述,便可以打开该描述。
2)位于org.eclipse.ui.dialogs包的
列表结构对话框:
ListDialog--提示输入元素列表外的一个元素的对话框。可以使用IStructuredContentProvider
提供元素及ILabelProvider提供元素标签
ListSelectionDialog--用于请求用户从列表中选择一个或多个列表项。使用getResult()返回结
果。
ElementListSelectionDialog--从元素列表中选择元素的对话框
树结构对话框:
CheckedTreeSelectionDialog--从树状结构中选择元素的对话框
ElementTreeSelectionDialog--从树状结构中选择元素的对话框。可定义验证器和过滤器来进
一步定义选择过程。
特殊对话框:
TwoPaneElementSelector--拥有两个窗格的列表选择对话框
YesNoCancleListSelectionDialog--允许用户选择“否”为结果的列表选择框(?)
资源相关对话框:
ResourceSelectionDialog--资源列表中选择对话框,并会传递用做列表根的资源和一个文本信
息。
ResourceListSelectionDialog--用于显示资源,其中资源列表带有一个文本项字段,该字段可
用来筛选列表资源
----------------
在构建自己的专用对话框之前,应该从两个包中寻找是否有可以满足需求的对话框,如果确实需要实现自己的对话框,可以扩展下列类中的一个:
-org.eclipse.jface.dialogs.Dialog
-org.eclipse.jface.dialogs.TitleAreaDialog
-org.eclipse.ui.dialogs.SelectionDialog
另外,当希望得到同Eclipse平台相同的外观和感觉时,应该尽可能的重用SWT对话框,例如需要配置颜色、字体、打开文件等操作时,使用SWT现有的对话框是最好的选择。
-------------------------
向导对话框
向导对话框(org.eclipse.jface.wizard.WizardDialog)是Dialog的一个专门子类,它作为向导中的顶级对话框,定义标准按钮并管理为它提供的一组向导页面。向导对话框使用IWizard接口来获得将要显示的页面,并向向导通知用户的交互。
向导(IWizard)负责控制向导的整体外观和行为。向导通常使用相应的DialogSettings来获取(和存储)向导页面上的控件设置的默认值。Wizard类提供了向导的默认实现,通常通过扩展Wizard类来实现特定向导的行为。向导的主要任务包括创建向导页面并将它们添加到向导中;实现当用户点击“Finish”按钮时处理相关的动作。
Wizard类比较重要的方法:
-addPages(),子类覆盖该方法,通过调用addPage()添加适当的页面。
-getDialogSettings(),返回该向导对话框的设置
-getPreviousPage(IWizardPage),返回指定向导页前面显示的向导页,如果没有则返回null
-getNextPage(IWizardPage),返回指定向导页后面显示的向导页,如果没有则返回null
-getStartingPage(),获得向导页中显示的第一个页面
-performFinish(),点击“Finish”按钮后,该方法被调用。
向导使用org.eclipse.jface.wizard.IWizardPage接口在它们包含的页面之间通信。
向导页面(IWizardPage)通常扩展WizardPage类来创建构成该页面内容的SWT控件。向导页面的任务是向用户展示页面信息、验证用户在该页面输入的信息是否正确,并指示用户在该页面的输入是否全部完成。
向导页面的一些重要方法:
-createControl(Composite),创建组成向导页的控件
-setPageComplete(String),设置该页面是否已完成,如果该页面已完成,则“Next”按钮(非
最后一页)和“Finish”按钮就会可用。
-setVisible(boolean),设置对话框页的可见性。子类可以扩展该方法来检测页面何时变为活动
页面。
---------------------------------------------
添加向导
用于向用户界面添加向导的扩展点有:
org.eclipse.ui.newWizard,org.eclipse.ui.importWizard,org.eclipse.ui.exportWizard
下面以newWizard为例说明:
添加org.eclipse.ui.newWizards扩展--》新建wizard-->实现向导,继承
org.eclips.jface.wizard.Wizard类,并实现init(),performFinish(),addPages()三个方法。
除了默认从“新建”菜单中启动新的向导外,还可以从代码中直接启动向导:
MyWizard wizard=new MyWizard();
wizard.init(PlatformUI.getWorkbench,null);
Shell shell=PlatforUI.getWorkbench.getActiveWorkbenchWindow.getShell();
WizardDialog dialog=new WizardDialog(shell,wizard);
dialog.open();
对话框和向导通常被看做模态UI,它们限制用户输入请求的信息。模态UI通常用于程序在运行其他处理之前搜集和分发信息的场合,并且搜集和分发信息的过程不需要同其他的界面元素交互便可以完成;而视图和编辑器是非模态UI,用户可以自由地和工作台中的所有资源交互,并没有限定用户同它们的交互顺序。
-----------
对话框类别
SWT对话框和JFace对话框,它们是两种不同的对话框层次。
SWT对话框类(继承了抽象类org.eclipse.swt.widgets.Dialog)为作为SWT插件一部分实现的对话框提供了支持,如文件对话框、目录对话框,这些对话框自身就是SWT小部件,是内置平台对话框的Java表示,这意味着在不同的运行平台上,它们的内部实现可能不同。这些对话框为插件提供了与平台相适应的外观,因此,开发者只需要使用这些对话框即可。
JFace对话框是独立于平台的对话框(上面提到过,JFace舍弃了SWT的平台相关的部分,对一些常见的功能的封装,也就是说JFace相关的部件都是平台无关的),它们是向导页面,属性页面,首选项页面的实现基础。JFace支持开发者构建特定的对话框,在JFace对话框不能满足需求的情况下可以自定义实现。
1.SWT对话框
Eclipse实现的SWT对话框类提供了与底层平台特定对话框的平台无关性接口,它们都位于org.eclipsee.ui.swt.widgets包中。
SWT对话框有:
ColorDialog--提示用户从可用颜色的预定义集中选择一种颜色
DirectoryDialog--提示用户浏览文件系统,并选择或新建一个文件夹(SWT.SAVE表示新建文件夹,SWT.OPEN表示选择现有文件夹)
FileDialog--提示用户浏览文件系统,并选择或新建一个文件名(SWT.SAVE表示新建文件,SWT.OPEN表示选择现有文件)
FontDialog--提示用户从系统所有可用字体中选择一种字体
MessageBox--给用户显示一条消息
PrintDialog--提示用户选择一个打印机和开始打印任务之前的各种相关参数
2.JFace对话框
org.eclipse.jface.dialogs提供了一些实现标准对话框的类,所有这些对话框都是JFace抽象类Dialog的子类。Dialog类继承自Window类,二者的生命周期相似,不同于Window的是,Dialog已经定义好了对话框的基本框架,开发者不需要重写createContents()方法来创建内容,而应该重写createDialogArea(),createButtonBar(),createButtonsForButtonBar()三个方法来构建特定的对话框。
常用的JFace对话框:
它们位于org.eclipse.jface.dialogs和org.eclipse.ui.dialogs包中。
1)位于org.eclipse.jface.dialogs包的
MessageDialog--显示一条消息,可以显示一个合适的图像,图像选项:none,error,information,
question,warning
InputDialog--提供输入框,接收用户输入的值
ProgressMonitorDialog--执行长时间运行的任务需要提醒用户运行状态时,可以使用该对话
框。
ErrorDialog--向用户显示一个或多个错误,如果提供了错误的细节描述,便可以打开该描述。
2)位于org.eclipse.ui.dialogs包的
列表结构对话框:
ListDialog--提示输入元素列表外的一个元素的对话框。可以使用IStructuredContentProvider
提供元素及ILabelProvider提供元素标签
ListSelectionDialog--用于请求用户从列表中选择一个或多个列表项。使用getResult()返回结
果。
ElementListSelectionDialog--从元素列表中选择元素的对话框
树结构对话框:
CheckedTreeSelectionDialog--从树状结构中选择元素的对话框
ElementTreeSelectionDialog--从树状结构中选择元素的对话框。可定义验证器和过滤器来进
一步定义选择过程。
特殊对话框:
TwoPaneElementSelector--拥有两个窗格的列表选择对话框
YesNoCancleListSelectionDialog--允许用户选择“否”为结果的列表选择框(?)
资源相关对话框:
ResourceSelectionDialog--资源列表中选择对话框,并会传递用做列表根的资源和一个文本信
息。
ResourceListSelectionDialog--用于显示资源,其中资源列表带有一个文本项字段,该字段可
用来筛选列表资源
----------------
在构建自己的专用对话框之前,应该从两个包中寻找是否有可以满足需求的对话框,如果确实需要实现自己的对话框,可以扩展下列类中的一个:
-org.eclipse.jface.dialogs.Dialog
-org.eclipse.jface.dialogs.TitleAreaDialog
-org.eclipse.ui.dialogs.SelectionDialog
另外,当希望得到同Eclipse平台相同的外观和感觉时,应该尽可能的重用SWT对话框,例如需要配置颜色、字体、打开文件等操作时,使用SWT现有的对话框是最好的选择。
-------------------------
向导对话框
向导对话框(org.eclipse.jface.wizard.WizardDialog)是Dialog的一个专门子类,它作为向导中的顶级对话框,定义标准按钮并管理为它提供的一组向导页面。向导对话框使用IWizard接口来获得将要显示的页面,并向向导通知用户的交互。
向导(IWizard)负责控制向导的整体外观和行为。向导通常使用相应的DialogSettings来获取(和存储)向导页面上的控件设置的默认值。Wizard类提供了向导的默认实现,通常通过扩展Wizard类来实现特定向导的行为。向导的主要任务包括创建向导页面并将它们添加到向导中;实现当用户点击“Finish”按钮时处理相关的动作。
Wizard类比较重要的方法:
-addPages(),子类覆盖该方法,通过调用addPage()添加适当的页面。
-getDialogSettings(),返回该向导对话框的设置
-getPreviousPage(IWizardPage),返回指定向导页前面显示的向导页,如果没有则返回null
-getNextPage(IWizardPage),返回指定向导页后面显示的向导页,如果没有则返回null
-getStartingPage(),获得向导页中显示的第一个页面
-performFinish(),点击“Finish”按钮后,该方法被调用。
向导使用org.eclipse.jface.wizard.IWizardPage接口在它们包含的页面之间通信。
向导页面(IWizardPage)通常扩展WizardPage类来创建构成该页面内容的SWT控件。向导页面的任务是向用户展示页面信息、验证用户在该页面输入的信息是否正确,并指示用户在该页面的输入是否全部完成。
向导页面的一些重要方法:
-createControl(Composite),创建组成向导页的控件
-setPageComplete(String),设置该页面是否已完成,如果该页面已完成,则“Next”按钮(非
最后一页)和“Finish”按钮就会可用。
-setVisible(boolean),设置对话框页的可见性。子类可以扩展该方法来检测页面何时变为活动
页面。
---------------------------------------------
添加向导
用于向用户界面添加向导的扩展点有:
org.eclipse.ui.newWizard,org.eclipse.ui.importWizard,org.eclipse.ui.exportWizard
下面以newWizard为例说明:
添加org.eclipse.ui.newWizards扩展--》新建wizard-->实现向导,继承
org.eclips.jface.wizard.Wizard类,并实现init(),performFinish(),addPages()三个方法。
除了默认从“新建”菜单中启动新的向导外,还可以从代码中直接启动向导:
MyWizard wizard=new MyWizard();
wizard.init(PlatformUI.getWorkbench,null);
Shell shell=PlatforUI.getWorkbench.getActiveWorkbenchWindow.getShell();
WizardDialog dialog=new WizardDialog(shell,wizard);
dialog.open();
发表评论
-
再说SWT中的滚动面板ScrolledComposite实现
2013-06-19 15:43 2329记得以前写过一篇关于滚动面板的文章 SWT中 Scrolle ... -
OSGi参考资料
2013-04-18 01:11 683基于 OSGi 的面向服务的组件编程 探索 OSGi 框架的组 ... -
CDT(编辑、调试)参考资料
2013-04-17 02:15 1115CDT编辑器 --------- 构建基于 CDT 的编辑器, ... -
Workspace Resource框架专题(3)处理工作空间资源更改事件
2013-04-17 01:44 13803 处理工作空间资源更改事件 工作空间API允许工具对它 ... -
Workspace Resource框架专题(2)workspace 框架API
2013-04-17 01:27 14902 工作空间API 本 ... -
Workspace Resource框架专题(1)Resource的概念
2013-04-17 01:12 13931 Resource的概念 如 ... -
如何恢复断点及Marker
2013-03-05 00:41 0如何恢复断点及Marker -
深入Workbench框架
2013-03-01 02:10 1730深入Workbench框架(结合UIPersistent) 1 ... -
Eclipse插件开发中的Action
2013-02-24 23:10 2006插入点用来定义菜单出 ... -
Eclipse开发中编辑器(Editors)和视图(View)总结
2013-02-24 22:58 29141.视图(Views) 视图( ... -
SWT/JFace专题 --- JFace
2013-02-24 22:37 1645JFace JFace是基于SWT的一套图形工具包,它没有为 ... -
SWT/JFace专题 --- SWT中Display和多线程
2013-02-24 15:25 3242Display 1.Display 的创建 一个SWT程序 ... -
SWT/JFace专题 --- SWT API 结构
2013-02-23 18:31 1081SWT API 结构 1.布局类(l ... -
Eclipse启动过程(源码级剖析)
2013-02-20 03:24 3423双击eclipse安装目录下的eclipse.exe运行后,会 ... -
SWT/JFace专题 --- SWT结构浅析
2013-02-23 17:02 1023SWT技术是一套基于Java的 ... -
Eclipse平台体系结构
2013-02-21 23:56 18951.Eclipse平台体系结构 1 ... -
RCP平台架构
2013-02-23 14:11 1488RCP 富客户端通常是指具有独立用户界面的客户端程序。富客户 ... -
Ant构建脚本相关
2013-02-18 01:26 0Ant构建脚本相关 -
CDT源码架构研究
2013-02-18 01:24 0CDT源码架构研究 -
SWT/JFace专题 --- SWT/JFace概述
2013-02-23 16:59 868SWT(Standerd Widget Toolkit,标准图 ...
相关推荐
在"SWT/JFace专题 --- SWT/JFace概述"中,可能涉及以下知识点: 1. SWT控件:包括Button、Text、Table、Tree、Composite等基本和复杂的控件,以及如何使用它们构建用户界面。 2. JFace数据绑定:讲解如何使用...
本教程将涵盖 SWT/JFace 的概览、目的、许可证和平台支持、SWT 和 JFace 的区别、使用 SWT/JFace 构建 GUI 应用程序、使用 SWT/JFace 管理颜色、绘图、字体、图案等内容。 SWT/JFace 的目的: SWT/JFace 的主要...
标题中的"swt/jface.jar"是一个关键组件,它在Java开发环境中用于构建用户界面。SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它提供了与原生操作系统更紧密集成的图形用户界面控件。JFace是建立在SWT...
4. **Dialogs 和 Wizards**:在 SWT/Jface API 3.4 中,提供了丰富的对话框和向导类,如 MessageDialog、InputDialog、FileDialog 等,帮助开发者快速创建常见的用户交互。向导(Wizard)则是一种引导用户完成多步骤...
SWT/Jface开发入门指南是一篇专为初学者编写的教程,旨在帮助他们快速搭建开发环境并掌握使用SWT和JFace编写图形化应用程序的基本技巧。以下是该教程所涵盖的关键知识点: 1. **SWT和JFace简介**: - SWT全称...
5. **对话框(Dialog)**:登录窗口可能是一个独立的 `Dialog` 对象,它继承自 `org.eclipse.jface.dialogs.Dialog` 类。对话框提供了一种方便的方式,让用户在主应用程序窗口之外输入信息,且可以自定义其大小、...
Eclipse SWT/JFace 核心应用 带书签 Eclipse SWT/JFace
SWT/JFace是Java开发图形用户界面(GUI)的两个重要库,由Eclipse基金会维护。它们被广泛用于构建桌面应用程序,尤其是与Eclipse IDE相关的项目。本学习文档旨在介绍SWT/JFace的基础知识,帮助开发者更好地理解和...
JFace则是建立在SWT之上的一个高级UI框架,它简化了SWT的使用,提供了数据绑定、对话框、视图、表和树等控件的抽象。JFace通过模型-视图-控制器(MVC)的设计模式,帮助开发者更好地组织代码,减少重复工作,并且...
SWT/JFace开发实例
4. 对话框(Dialogs):JFace提供了一系列预定义的对话框,如输入对话框、确认对话框等,方便开发者快速创建用户交互。 5. 表格和树的模型(Table and Tree Models):SWT和JFace提供了处理表格和树数据的类,如`...
SWT (Standard Widget Toolkit) 和 JFace 是两个与Java GUI编程密切相关的库,它们由Eclipse项目维护。本文将深入探讨这两个技术,并结合《SWT/JFace in Action》这本书的相关内容,提供一个全面的知识框架。 SWT是...
【SWT/JFace从入门到精通】 SWT(Standard Widget Toolkit)和JFace是Eclipse平台下用于构建图形用户界面(GUI)的两个关键库。它们为Java开发者提供了丰富的控件和高级UI功能,使创建桌面应用程序变得简单而强大。...
【SWT/JFace实例开发】是一份针对Java GUI编程的学习资源,主要聚焦于SWT(Standard Widget Toolkit)和JFace这两个强大的图形用户界面库。SWT是Eclipse项目的一部分,它提供了一套与操作系统直接交互的原生控件,...
JFace 是建立在SWT之上的一个抽象层,它提供了一些高级服务,如数据绑定、视图和对话框的构建器,以及模型-视图-控制器(MVC)的设计模式,这使得开发者可以更专注于业务逻辑,而不是GUI的细节。JFace还引入了视图、...
5. 压缩包子文件的文件名称列表:"SWT-JFace-3.5-API-html",这个文件可能是压缩包内的主文件,包含了整个SWT和JFace 3.5版本的API文档。解压后,开发者可以通过打开这个HTML文件来访问完整的API指南。 在开发过程...
### SWT/JFace中文教程知识点详解 #### 1.1 SWT/JFace概览 - **SWT与JFace的目的**:SWT(Standard Widget Toolkit)和JFace是Eclipse平台提供的两个核心工具包,用于构建高性能的图形用户界面(GUI)。SWT主要...
《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的...
王占全,苏玲 著; ISBN:7-121-05152-4 学习 SWT/JFace 的好书!