第 4 章 SWT/JFace 入门
用 Java 做过开发的程序员对 Swing 肯不陌生,在 Java 中,Swing 提供了基于 Java 的一
套 GUI 的库。但 Java 语言的声望和它在桌面应用程序(GUI 程序)所取得的成就显然极不
相符,至今仍然很少能看到非常成功 Java 桌面程序。
SWT(Standard Widget Toolkit)本身仅仅是 Eclipse 组织为了开发 Eclipse IDE 环境所编
写的一组底层图形界面 API。或许是无心插柳,或是有意为之,至今为止,SWT 无论是在
性能和外观上,都超越了 SUN 公司提供的 AWT 和 SWING。
本章主要从以下几个部分进行介绍:
SWT/JFace 简介
SWT “Hello world”程序
JFace “Hello world”程序
SWT 中加入 SWING 组件
4.1 SWT/JFace 简介
SWT 是 Java 开发者的窗口小部件工具箱,它提供可移植的 API,并与底层本机操作系
统图形用户界面平台紧密集成。另外,SWT 定义在所有受支持平台上提供的公共可移植
API,并尽可能地使用本机窗口小部件在每个平台上实现该 API,这允许工具箱在所有平台
上维护一致的编程模型时立即反映底层操作系统图形用户界面外观中的任何更改。
JFace 用来在 SWT 库顶部提供常见的应用程序用户界面功能。 JFace 并不试图“隐
藏”SWT 或者替换它的功能。它提供一些类和接口,以处理与使用 SWT 来对动态用户界面
编程相关联的许多常见任务。
SWT/JFace 是 Eclispe 的基础,Eclipse 的 workbench 就是建立在 SWT/JFace 之上的。另
外,JFace 是在 SWT 之上开发,它和 SWT 形成一个交集,其中 SWT 提供最原始的组件,
如图 4-1 所示。
图 4-1 SWT/JFace 和 Workbench 的关系
JFace 对 SWT 进行了扩展,把用户熟悉的一些组件进行了封装,在开发中用户可以尽
可能的用 JFace 组件来开发自己的应用。JFace 程序和 SWT 程序类似,只不过 JFace 把常用
的功能进行了提练,使用户不必太关心 SWT 的一些细节。