快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
的行为,包括用户界面故障。有一些工具可以帮助管理线程的问题。

与 AWT 类似,Swing 的一个优点是,它也是 Java 技术的一种标准配置。这 意味着您不需要自己来安装它了。不幸的是,Swing 已经有了很大的变化,因此 它很容易变得依赖于最新版本的Java 语言所提供的特性,这可能会强制用户更 新自己的Java 运行时环境。

SWT 概述

与 AWT 的概念相比,SWT 是一个低级的GUI 工具包。JFace 是一组用来简化 使用 SWT 构建 GUI 的增强组件和工具服务。SWT 的构建者从 AWT 和 Swing 实 现中学习了很多经验,他们试图构建一个集二者优点于一体而没有二者的缺点的 系统。从很多方面来说,他们已经成功了。

SWT 也是基于一个对等体实现的,在这一点上它与 AWT 非常类似。它克服了 AWT 所面临的LCD 的问题,方法如下:定义了一组控件,它们可以用来构建大部 分办公应用程序或开发者工具,然后可以按照逐个主机的原则,为特定主机所没 有提供的控件创建模拟控件(这与 Swing 类似)。对于大部分现代主机来说, 几乎所有的控件都是基于本地对等体的。这意味着基于 SWT 的GUI 既具有主机 外观,又具有主机的性能。这样就避免了使用 AWT 和 Swing 而引起的大部分问 题。特定的主机具有一些低级功能控件,因此 SWT 提供了扩充(通常是模拟的 )版本(通常使用 “C” 作为名字中的第一个字母),从而可以产生更一致的 行为。

在对等体工作方式上,SWT 与 AWT 不同。在 SWT 中,对等体只是主机控件 上的一些封装程序而已。在 AWT 中,对等体可以提供服务来最小化主机之间的 差异(就是在这里,AWT 碰到了很多行为不一致的问题)。这意味着 SWT 应用 程序实际上就是一个主机应用程序,它必然会全部继承主机的优点和缺点。这还 意味着 SWT 不能完全实现 WORE 的目标;它更像是一种 WOTE 解决方案。这就 是说,SWT 尽管不如 Swing 那么优秀,但是它在创建可移植解决方案方面是很 杰出的。

SWT 部件、布局和事件总结如下(参见 清单 7、清单 8 和 清单 9)。正如 您可以看到的一样,这些组件集比 AWT 提供的组件集更为广泛,与 Swing 组件 集相比也毫不逊色。

清单 7. 基本的SWT Class 树(大部分在 org.ecipse.swt.widgets 或 org.eclipse.swt.custom 包或子包中,“*” 表示抽象类,“!” 表示在 custom 包中,“~” 表示在其他包中)

Object *Dialog ColorDialog DirectoryDialog FileDialog FontDialog MessageDialog PrintDialog *Widget Menu *Item CoolItem !CTabItem MenuItem TabItem TableColumn TableItem TableTreeItem ToolItem TrayItem TreeColumn TreeItem *Control Button Label ProgressBar Sash Scale Scrollable Composite ~Browser Canvas *~AbstractHyperlink ~Hyperlink ~ImageHyperlink *~ToggleHyperline ~TreeNode ~Twistie AnimatedProgress !CLabel Decorations Shell FormText StyledText TableCursor !CBanner ! CCombo Combo CoolBar !CTabFolder ~ExpandableComposite ~Section ~FilteredList ~FilteredTree ~Form Group ~PageBook ProgressIndicator ! SashForm !ScrolledComposite TabFolder Table TableTree ToolBar Tray Tree ViewForm List Text Slider

注意:在另外几个包中还有其他一些 SWT 部件,但是这是基本的部件集。

与 AWT 和 Swing 布局管理器类似,SWT 也提供了非常丰富的布局部件集。 布局系统与嵌套容器一起使用,可以生成所需要的任何布局算法。所有这 3 个 GUI 库也可以支持对部件的定位实现绝对控制。SWT 没有等效的BorderLayout 部件,这一点非常令人失望。FormLayout 对于创建表单基本输入来说非常好用 。我认为 SWT 的布局机制比 AWT/Swing 布局部件

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