快速业务通道

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

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

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

时间:2010-12-24

本文通过对 Eclipse 的SWT 和 Java Swing、Abstract Windows Toolkit (AWT)GUI 工具包进行比较,可以帮助新应用程序的开发人员从中选择适当的 工具。

您可以通过本文了解对每个工具包的基本特性的介绍,以及使用 每个工具包的优缺点。

简介

developerWorks 上另外一些作者已 经展示了如何在 Swing 和 SWT 之间很好地进行迁移(参见 参考资料)。本文 的目标是帮助您在开始开发项目之前确定选择使用哪个 GUI 工具包。

但 是首先我们要弄清一个问题:为什么会有多个 Java™ GUI 工具包呢?最 好的答案是,一个工具包并不能满足所有的要求,最近也不会开发一个可以满足 所有要求的GUI 工具包。每个工具包都有各自的优缺点,这样就可以根据自己的 需求和目标用户来选择适当的工具包。

下面就让我们来学习有关这些工 具包的知识。

AWT 概述

Abstract Windows Toolkit(AWT)是最 原始的Java GUI 工具包。AWT 的主要优点是,它在 Java 技术的每个版本上都 成为了一种标准配置,包括早期的Web 浏览器中的Java 实现;另外它也非常稳 定。这意味着我们不需要单独安装这个工具包,在任何一个 Java 运行环境中都 可以使用它,这一点正是我们所希望的特性。

AWT 是一个非常简单的具 有有限 GUI 组件、布局管理器和事件的工具包(参见 清单 1、清单 2 和 清单 3)。这是因为 Sun 公司决定为 AWT 使用一种最小公分母(LCD)的方法。因此 它只会使用为所有 Java 主机环境定义的GUI 组件。最终的结果非常不幸,有些 经常使用的组件,例如表、树、进度条等,都不支持。对于需要更多组件类型的 应用程序来说,我们需要从头开始创建这些组件。这是一个很大的负担。

清单 1. 基本的AWT Class 树(全部在 java.awt 包中, “*” 表示抽象)

Object CheckboxGroup *Component Button Canvas CheckBox Choice Container Panel Applet ScrollPane Window Dialog Frame Label List TextComponent TextArea TextField MenuComponent MenuItem CheckboxMenuItem Menu PopupMenu

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

清单 2. AWT 提供了下面的布局管理器(全部在 java.awt 包中,“*” 表 示接口)

*LayoutManager FlowLayout GridLayout *LayoutManager2 BorderLayout CardLayout GridBagLayout

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

清单 3. AWT 提供了以下事件(大部分在 java.awt.events 包中)

Object EventObject AWTEvent ActionEvent AdjustmentEvent ComponentEvent ContainerEvent FocusEvent InputEvent KeyEvent MouseEvent MouseWheelEvent PaintEvent WindowEvent HierarchyEvent InputMethodEvent InvocationEvent ItemEvent TextEvent

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

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

时间:2010-12-24

通常对于 AWT 来说(也适用于 Swing 和 SWT),每个事件类型都有一个相 关的XxxListener 接口(XxxAdapter 的实现可能为空),其中 Xxx 是去掉 Event 后缀的事件名(例如,KeyEvent 事件的接口是 KeyListener),用来把 事件传递给处理程序。应用程序会为自己感兴趣处理的事件的事件源(GUI 组件 或部件)进行注册。有时监听接口要处理多个事件。

AWT 的一个很好的特性是它通常可以对 GUI 组件自动进行销毁。这意味着您 几乎不需要对组件进行销毁。一个例外是高级组件,例如对话框和框架。如果您 创建了耗

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