关于本文
本文所描述的环境基于Eclipse 3.3;本文假定你对Eclipse、SWT和RCP有一定了解;
由于本人喜好一目了然的排版,本文将以最简的方式描述各个操作步骤,除非必要,否则不带插图。
JFace介绍
@http://wiki.eclipse.org/index.php/JFaceJFace是一个UI工具类集,用于处理许多通用UI编程任务。 JFace无论是从API或其实现都是Window-System-Independent(视窗系统无关)的,设计与SWT共同工作而并非完全替代。JFace包含常用UI工具组件如:图像和字体记录、文本、对话框、设置和向导框架,以及长时操作进度报告(进度条等)。还有两个更有趣的特性Actions和Viewers。Action机制允许定义用户命令并独立于其在UI中的确切所在。Viewers是基于模型的SWT Widgets适配器,简化了应用程序数据结构的表述,例如Lists、Tables、Trees。
JFace介绍
@The_Official_Eclipse_FAQsJFace是基于SWT的Java应用程序框架。其目标是提供一组可重用的组件,来简化以Java实现的GUI程序的编写。JFace所提供的组件所体现的GUI观念是如此亲切:向导、定制页、动作、对话框。这些组件往往比较零碎,却是基本Widget集合的不可或缺的组成部分,用这些通用型组件绘制到可重用框架中的好处是重大的。尽管继承于IDE框架,大多数JFace还是在图形桌面应用中有广泛用途。JFace与Eclipse运行时核心有一些联系,但是提取JFace和SWT使用到非基于Eclipse运行时的独立Java程序还是相当直截了当的。
JFace介绍
OK,上面两段文字是翻译的官方介绍,有些绕口。简单的说,JFace就是SWT的高级形式。由于SWT是Eclipse RCP程序的基石,因此功能多而细致繁琐,在使用上不是很方便,JFace则是以面向对象的方式对SWT的封装。但是,JFace并不是SWT的升级版之类的,不能也不会完全取代SWT。对于Eclipse来说,JFace与SWT所盖的房子就是RCP程序,一个Rcp程序就是一个Eclipse Product。Eclipse本身就是这么盖起来的。JFace环境搭建
我用的Eclipse版本为3.3,编写SWT/JFace程序还是比较简单的。那么,废话少说。1. 下载Eclipse
http://www.eclipse.org/downloads/
2. 安装PDE(Eclipse plug-in development environment)- 如果未安装此Feature则缺少必要的Jar文件。
► Help -> Software Updates -> Find and Install ... [升级]
► Search for new features to install [选择升级类型]
► The Eclipse Project Updates [选择访问站点]
► 选择安装 Eclipse 3.3.2 -> Eclipse Plug-in Development Environment <version>
► 同时最好把源码也下了 Eclipse 3.3.2 -> Eclipse Platform Plug-in Developer Resources <version>
!注意!安装的时候一定要安装到Eclipse目录下,如果安装到了外部目录的话,下面的步骤将无法使用相对路径,这样的话,如果你将Eclipse拷贝到其他地方使用的时候,就必须一个个的更改目录,非常麻烦。
3. 导入必须的类库
从3.2或是3.3开始,JFace不再依赖Eclipse Runtime库,并添加了一些可选部分:
- org.eclipse.core.commands_<version info>.jar
- org.eclipse.equinox.common_<version info>.jar
- org.eclipse.osgi_<version info>.jar [3.3以后版本才有,非必须,但添加后拥有一些国际化的好处]
- org.eclipse.jface_<version info>.jar
- org.eclipse.swt.win32.win32.x86_<version info>.jar [这是SWT库,视乎平台有所不同]
- org.eclipse.ui.workbench_<version info>.jar [此项并非JFace必须的类库,但其中包含很多有用的Dialog,一般添加。]
不过官方推荐使用相对路径的办法:
►下载SWT稳定发布版 Eclipse SWT Project Page 注意选择正确的平台,下载后无需解压。
►在Eclipse中导入此Zip,你将得到名为“org.eclipse.swt”的工程,其中已经自动添加了SWT的源码和doc。
►然后导入上面列表中的JFace依赖包,这里使用相对路径,无论Eclipse移动到哪里都有效:
⇒ 在刚才导入的SWT工程点右键选Properties
⇒ 找到“Java Build Path”中的“Library”页上点“Add Variable”
⇒ 点击选择ECLIPSE_HOME ... 点右边的按钮“Extend”
⇒ 依次选择添加上面列表中的包(除了SWT包,因为工程里已经自动包含了)
⇒ 最后在“Order and Export”页上将刚才添加的包打上勾
这样,当一个新的Project需要SWT/ JFace包时,将“org.eclipse.swt”添加入新Project的Required Project中即可。►在Eclipse中导入此Zip,你将得到名为“org.eclipse.swt”的工程,其中已经自动添加了SWT的源码和doc。
►然后导入上面列表中的JFace依赖包,这里使用相对路径,无论Eclipse移动到哪里都有效:
⇒ 在刚才导入的SWT工程点右键选Properties
⇒ 找到“Java Build Path”中的“Library”页上点“Add Variable”
⇒ 点击选择ECLIPSE_HOME ... 点右边的按钮“Extend”
⇒ 依次选择添加上面列表中的包(除了SWT包,因为工程里已经自动包含了)
⇒ 最后在“Order and Export”页上将刚才添加的包打上勾
4. 链接源码和文档
作用:
这里介绍如何将刚才导入的Jar包和其源码以及联机文档(JavaDoc)联系起来,在Eclipse的文本编辑区域就可以方便的随时查看某个类的源码或文档:
通过Ctrl+左键点击某个类或变量直接查看源码
鼠标悬浮在某个类或变量上时,显示文档鼠标提示,或者使用一个JavaDoc的View来查看
方法:
源码:
►打开刚才的工程"org.eclipse.swt"的属性中的Library页
►选取任一项,选择“Source attachment : (None)”,双击或者点击右边的按钮“Edit”
►先点击“Variable...”,选择ECLIPSE_HOME
►然后点击“Extention...”,选择plugins目录下的目录“org.eclipse.rcp.resource_<version>”
►选择对应名称下的“src.zip”文件
►依次重复以上步骤,链接好全部源码
文档:
⇒使用URL - http://help.eclipse.org/help33/nftopic/org.eclipse.platform.doc.isv/reference/api/
(其中help33中的数字是对应版本号)
或者URL - http://help.eclipse.org/stable/nftopic/org.eclipse.platform.doc.isv/reference/api/
(这个是不带版本号,始终是最新稳定版)
⇒或者使用相对路径:
►由于文档路径不能使用变量,但可以使用相对工程的路径,因此需要把文档包添加到工程里:
►将plugins目录下的文件“org.eclipse.platform.doc.isv_<version>.jar”用鼠标拖动到Eclipse的工程“org.eclipse.swt”上
►添加文档,在JavaDoc Location弹出的对话框中选择Javadoc in Archive,并选择Workspace File
►然后选择“org.eclipse.swt/org.eclipse.platform.doc.isv_<version>.jar”
►在Path Within Archive中选择“reference/api”即可
另:其实源码和文档只需链接org.eclipse.swt和org.eclipse.jface包一般即可满足需求。