JFace中封装了Viewer组件实现,用户可以使用Viewer组件提供的强大功能。另外对话框在SWT开发中也是不可缺少的,SWT封装了常用对话框的实现,用户也可以使用JFace封装的对话框的功能。
本章包括如下内容:
l JFace程序
l TreeViewer组件
l TableViewer组件
l 消息对话框
l 输入对话框
l 进度监视对话框
l 自定义对话框
l 常用系统对话框
15.1 JFace程序
JFace 是一个用户界面工具箱,它提供很难实现的、用于开发用户界面功能部件的 helper 类,JFace 在原始的窗口小部件系统的级别之上运行。JFace 使用户可以专注于实现特定插件的功能,而不必花费精力来处理底层窗口小部件系统或者解决几乎在任何用户界面应用程序中都很常见的问题。
15.1.1 “Hello world”程序
JFace的应用程序相对来说更简单,它通过ApplicationWindow类实现应用,Application Window把和操作系统交互的细节封装起来,用户只需要关心自己窗口的建立,程序代码如例程15-1所示。
例程15-1 HelloWorldJFace.java
public class HelloWorldJFace extends ApplicationWindow {
public HelloWorldJFace() {
super(null);
}
protected Control createContents(Composite parent) {
getShell().setText("hello world! Window");
parent.setSize(400, 250);
return parent;
}
public static void main(String[] args) {
HelloWorldJFace helloWorldApp = new HelloWorldJFace();
helloWorldApp.setBlockOnOpen(true);
helloWorldApp.open();
Display.getCurrent().dispose();
}
}
其中,JFace的应用程序可以通过重载createContents(Composite parent)方法添加窗口的组件到parent组件中。
15.1.2 运行“Hello world”程序
运行JFace的程序和运行SWT程序一样,也要选择“SWT Application”,程序运行效果如图15-1所示。

图15-1 JFace“Hello world”程序
在后面的Viewer组件和对话框的介绍中,会用到采用JFace程序运行应用,实现的原理和SWT的应用是一样的。






