技术开发 频道

ToolBar、SashForm 以及其他控件和对话框

  有些时候,您可能希望在修改控件大小或移动控件的同时给用户提供反馈。Tracker 可实现此目的。它创建一个临时的轮廓(实际是 GUI 上的透明窗口的边框),可以通过键盘或鼠标移动它或修改大小。在关闭 Tracker 时,应用程序通常就把相关控件移动或修改尺寸到与 Tracker 匹配的位置和尺寸。应用程序也可以跟着 Tracker 持续地移动控件或修改控件大小。

  以下清单显示了创建 Tracker 的代码。

  清单 9. 创建 Tracker 的方法

1 protected Tracker createTracker(Composite parent, int style) {
2     return createTracker(parent, style, null, null);
3 }
4 protected Tracker createTracker(Composite parent, int style,
5                                 ControlListener cl, KeyListener kl) {
6     Tracker t = new Tracker(parent, style);
7     if (cl != null) {
8         t.addControlListener(cl);
9     }
10     if (kl != null) {
11         t.addKeyListener(kl);
12     }
13     return t;
14 }
15

  图 7 显示了 Check 按钮的 Tracker,扩展到了 GUI 的右侧。

  图 7. Tracker 示例

  Dialog

  BasicApplication 类显示了确定退出的 MessageBox。这个 MessageBox 就是 SWT 提供的一组标准对话框的一个示例。其他一些有用的对话框是:

  FileDialog —— 允许用户选择文件

  DirectoryDialog —— 允许用户选择目录

  FontDialog —— 允许用户选择字体

  ColorDialog —— 允许用户选择选择颜色值

  请注意 Dialog 可能不允许您对其标题文本进行设置。

  下面的清单显示了创建全部 4 种 Dialog 的代码。

  清单 10. 创建多种 Dialog 的方法

1                 
2 FileDialog fd = new FileDialog(getShell(), SWT.OPEN);
3 fd.setText("Sample File Dialog");
4 String path = fd.open();
5
6 DirectoryDialog dd = new DirectoryDialog(getShell(), SWT.NONE);
7 dd.setText("Sample Directory Dialog");
8 String path = dd.open();                            
9
10 ColorDialog cd = new ColorDialog(getShell(), SWT.NONE);
11 cd.setText("Sample Color Dialog");
12 RGB rgb = cd.open();                            
13
14 FontDialog fd = new FontDialog(getShell(), SWT.NONE);
15 fd.setText("Sample Font Dialog");
16 FontData d = fd.open();
17

  图 8 至图 11 显示了不同 Dialog 的实际效果。

  图 8. 文件对话框示例

  图 9. 目录对话框示例

  图 10. 颜色选择示例

  图 11. 字体选择示例

  结束语

  本系列的第 4 部分介绍了 SWT 的控件 ToolBar、CoolBar、Tray、Link、SashForm、CBanner、Tracker 和不同的 Dialog。我们现在完成了对 SWT GUI 控件的游历。本系列的下一篇文章将进入 JFace 的领域,介绍如何使用 JFace ContentProvider 和 LabelProvider 构建表格和树的模型。

  代码下载:os-jface4.zip

0
相关文章