快速业务通道

Java GUI:SWT/Swing/AWT的介绍及比较 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
集的使用更难学习。

清单 8. SWT 提供了以下布局管理器(大部分在 org.eclipse.swt.layout 和 org.eclipse.swt.custom 包或子包中,“*” 表示接口,“!” 表示在 custom 包中)

*Layout FillLayout FormLayout GridLayout RowLayout !StackLayout

Java GUI:SWT/Swing/AWT的介绍及比较(4)

时间:2010-12-24

注意:在另外几个包中还有其他一些 SWT 布局管理器,很多都是为它们所布 局的容器而专门定制的,但是这是基本的布局管理器集。

与 AWT 和 Swing 事件系统一样,SWT 提供了非常丰富的事件集。尽管这些 事件并不能与 AWT/Swing 的事件一一对应(例如 AWT 和 Swing 的按钮都会产 生 ActionEvent 事件,而 SWT 的按钮产生的则是 SelectionEvent 事件),但 是它们通常都是等价的。

清单 9. SWT 提供了以下事件(大部分在 org.eclipse.swt.events 包或 org.eclipse.swt.custom 包或其子包中,“*” 表示抽象,“!” 表示在 custom 包中)

Object EventObject SWTEventObject TypedEvent AimEvent ! BidiSegmentEvent ControlEvent !CTabFlolderEvent DisposeEvent DragSourceEvent DragTargetEvent !ExtendedModifyEvent focusEvent HelpEvent KeyEvent TraverseEvent VerifyEvent !LineBackgroundEvent ! LineStyleEvent MenuEvent ModifyEvent MouseEvent PaintEvent SelectionEvent TreeEvent ShellEvent !TextChangedEvent ! TextChangingEvent

注意:在另外几个包中还有其他一些 SWT 事件,但是这是基本的事件集。这 些是从更通用的事件生成的具体事件。

很多 Swing 组件,例如 JTable,都有自己的模型。对应的SWT 控件(例如 Table)则没有;不过它们有自己的条目。条目通常用来限制显示文本或通常很 小的图像(例如图标)。为了提供一种类 Swing 的模型接口,SWT 使用了 JFace ContentProviders。这些组件可以在应用程序提供的模型(例如 List 或 Table 使用的java.util.Array )和用作视图的控件之间充当一个桥梁。为了将 任意模型对象格式化成条目,SWT 使用了 JFace LabelProviders,它们可以为 任何模型对象生成一个文本或图标格式。这可以对复杂模型对象的混合显示进行 限制。其他类似组件,例如 ColorProviders 和 LabelDecorators,可以增强对 这些条目的显示。对于 Tables 的特例来说,SWT 提供了 CellEditor,它可以 临时将任意 SWT 控件链接到一个 Table 单元格上,从而当作这个单元格的编辑 器使用。

SWT 不支持 GUI 控件的自动销毁。这意味着我们必须显式地销毁所创建的任 何控件和资源,例如颜色和字体,而不能利用 API 调用来实现这种功能。这种 工作从某种程度上来说得到了简化,因为容器控制了其子控件的自动销毁功能。

使用 SWT 只能自顶向下地构建 GUI。因此,如果没有父容器,子控件也 就不存在了;通常父容器都不能在以后任意改变。这种方法不如 AWT/Swing 灵 活。控件是在创建时被添加到父容器中的,在销毁时被从父容器中删除的。而且 SWT 对于 style 位的使用只会在构建时进行,这限制了有些 GUI 控件的灵活性 。有些风格只是一些提示性的,它们在所有平台上的行为可能并不完全相同。

与 Swing 类似,SWT 组件也不是线程安全的,这意味着您必须要关心在 应用程序中是哪个线程对 GUI 进行了更新。如果在使用线程时发生了错误,就 会抛出异常。我认为这比不确定的Swing 方法要好。有一些工具可以帮助管理线 程的问题。

如果所支持的操作系统提供了可访问性服务,那么 SWT GUI 通常也就具有很好的可访问性。当默认信息不够时,SWT 为程序员提供了一个基 本的API 来指定可访问性信息。

SWT 提供了一个有限的图形环境。到目 前为止,它对于

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号