快速业务通道

SWT和JFace,第3部分: 简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

SWT和JFace,第3部分: 简介

时间:2011-03-20 IBM Barry Feigenbaum

在本系列的前两期中(请参阅 参考资料),我介绍了 Eclipse、Eclipse Standard Widget Toolkit (SWT) 和 JFace GUI 工具包,以构造 Eclipse 和单独的富 GUI(rich GUI)。还介绍了一些基本 GUI 控件和容器类型。然后展示了如何将这些控件组合到简单的工作应用程序中。我详细介绍了如何在一个菜单系统中提供这些应用程序。最后,通过创建一个使 GUI 开发变得更容易的方法的库,我演示了如何遵循最佳实践。

在这一期中,我将继续查看 org.eclipse.swt.custom 和 org.eclipse.swt.widgets 包中的各种小部件。除非另外注明,否则我所讨论的控件都位于 widgets 包中。

TableTree

在 第 2 部分 中,我介绍了 Tree 和 Table 控件。SWT 支持这些控件的一个混合版本,在 custom 包中,这些控件被称为 TableTree。在 Eclipse V3.1 中,Tree 控件被增强为 TableTree 的一个功能替代,TableTree 则遭到反对。图 1 展示了一个表格式(TableTree 仿真模式)的示例 Tree。正如您可以看到的,树中的每一个项都被划分到列中。“第 2 部分”中展示了如何创建这些表和树,而创建一个表 Tree 实质上就是将这两项任务组合在一起,在这里我就不再重复它们。本文中包含的 Tree 示例将演示如何创建表 Tree。创建 TableTree 的代码与创建 Tree 的代码非常相似,因此,如果需要支持 Eclipse 的以前版本,那么可以使用 TableTree 控件。

图 1. 表树的例子

SWT和JFace,第3部分: 简介 - 编程入门网

本文的其余部分将展示如何使用许多新的 SWT 控件。我将在一个称为 TabFolder1App 的单个应用程序的上下文中做这一介绍。

TabFolder(和 CTabFolder)

TabFolders 是一个创建使用有限数量空间的复杂 GUI 的简便方法。一个选项卡文件夹(tab folder)被分成一个或多个选项卡(tab),其中每个选项卡都是它本身的一个完整 GUI。一次只显示一个选项卡。在 custom 包中,CTabFolder 是 TabFolder 的增强版,它看起来更好一些,并且可以支持选项卡的关闭。

必须将 TabFolders 和 CTabFolders 定义为以下两个相互排斥的样式之一:

TOP —— 将选项卡放置在顶部。

BOTTOM —— 将选项卡放置在底部。

CTabFolder 支持其他一些可选样式:

FLAT —— 为文件夹提供一个扁平的外观。

BORDER —— 在控件的周围显示边界。

CLOSE —— 允许选项卡关闭(显示一个 Close 按钮)。

与包含一些项的 Trees 和 Tables 类似,TabFolders 也包含一些定义选项卡的 TabItems(或者 CTabItems)。TabFolders 还包含多个控件(通常是 Composites),每个控件都定义了选项卡的一个内容。TabItem.setControl 方法将该控件与相关的选项卡连接起来。

图 2 展示了一个示例 TabFolder,而图 3 展示了一个使用 CTabFolder 的类似 GUI。注意,选定的 Canvas 选项卡在 CTabFolder 上有一个 Close (X) 按钮。

图 2. 带有 4 个选项卡的 TabFolder

SWT和JFace,第3部分: 简介 - 编程入门网

SWT和JFace,第3部分: 简介(2)

时间:2011-03-20 IBM Barry Feigenbaum

图 3. 带有 4 个选项卡的 CTabFolder

SWT和JFace,第3部分: 简介 - 编程入门网

与 第 2 部分 中介绍的方法一致,我将使用 protected 服务方法(位于超类 BasicApplication 中)来创建控件。清单 1 详细介绍了这些方法中的第一种方法,并展示了如何创建 TabFolders;也存在用于创建 CTabFolders 的类似代码。

清单 1. 用于创建 TabFolder 和 TabItem 的方法

protected TabFolder createTabFolder(Composite parent, int style) {   return new TabFolder(parent, style); } protected TabItem createTabItem(TabFolder parent, int style,            String text, Image icon, Control ct

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号