快速业务通道

SWT、Swing或AWT:哪个更适合您? - 编程入门网

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

SWT、Swing或AWT:哪个更适合您?

时间:2011-12-08 ibm Barry Feigenbaum

本文通过对 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

SWT、Swing或AWT:哪个更适合您?(2)

时间:2011-12-08 ibm Barry Feigenbaum

注意:另外几个包中还有其他一些 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

SWT、Swing或AWT:哪个更适合您?

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