技术开发 频道

如何创建简单的SWT应用程序

  至此,我们已经讨论了一些单独的控件。在多数 GUI 中,许多控件被组合在一起以提供丰富的用户体验。在 SWT 中,这种组合是通过 Composite 类实现的。

  复合控件可以在任何级别上进行嵌套,并且可以混合和匹配控件,将它们作为子控件进行组合。这样做可以极大地减少 GUI 开发的复杂性,并为 GUI 代码重用(通过封装内部 GUI)创造了机会。复合控件可以是有边界的,并且这些边界很容易在视觉上产生混淆,或者它们也可以是无边界的,无缝集成到更大的组中。

  清单 6. 创建一个有边界的复合控件。

  清单 6. 创建一个有边界的复合控件

1 import org.eclipse.swt.widget.*;
2 :
3 Composite parent = ...;
4 :
5 Composite border = new Composite(parent, SWT.BORDER);
6

 

  除了边界之外,Group 复合子类还支持标题。在定义排他性按钮集合时,组通常被用来包含单选类型的按钮。

  清单 7 创建了一个有边界的组。

  清单 7. 创建一个有边界的组

1 import org.eclipse.swt.widget.*;
2 :
3 Composite parent = ...;
4 :
5 Group border = new Group(parent, SWT.SHADOW_OUT);
6 border.setText("Group Description");

 

  shell

  shell 是一种可能没有父复合控件的复合控件(框架或窗口);此外,它还有一个作为父控件的 Display,这通常也是默认设置。shell 有很多种样式,但最常见的样式是 SWT.SHELL_TRIM 或 SWT.DIALOG_TRIM。shell 可以是模态的,也可以是非模态的。模态 shell 常常用于对话框,防止父 GUI(如果有的话)在关闭子 shell 之前被处理。

  清单 8 创建了一个框架样式的优异非模态 shell。

  清单 8. 创建一个优异 shell

1 import org.eclipse.swt.widget.*;
2 :
3 Shell frame = new Shell(SWT.SHELL_TRIM);
4 :
5

 

  shell 可以有子 shell。这些子 shell 是与父 shell 相关的独立桌面窗口(也就是说,如果父 shell 关闭,那么其所有子 shell 也将关闭)。

  清单 9 创建了一个对话框样式的子 shell。

  清单 9. 创建一个对话框 shell

1 :
2 Shell dialog = new Shell(frame, SWT.DIALOG_TRIM);
3 :
4

 

  参见图 4 中具有 SWT.SHELL_TRIMSee 的 shell,以及图 5 中具有 SWT.DIALOG_TRIM 的 shell,了解这些值如何影响 shell 的整洁性。

  图 4. 具有 SWT.SHELL_TRIM 的 shell

  图 5. 具有 SWT.DIALOG_TRIM 的 shell

0
相关文章