快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
费大量主机资源的资源,就需要手动对其进行销毁。

AWT 组件 是 “线程安全的(thread-safe)”,这意味着我们不需要关心在应 用程序中是哪一个线程对 GUI 进行了更新。这个特性可以减少很多 GUI 更新的 问题,不过使 AWT GUI 运行的速度更慢了。

AWT 让我们可以以自顶向下 (top-down) 或自底向上(bottom-up) 或以任意组合顺序来构建 GUI。自顶 向下的意思是在创建子组件之前首先创建容器组件;自底向上的意思是在创建容 器(或父)组件之前创建子组件。在后一种情况中,组件的存在并不依赖于父容 器,其父容器可以随时改变。

通常来说,AWT GUI 都是不可访问的。系 统并没有为 AWT 程序员提供 API 来指定可访问性信息。可访问性 (accessibility)处理的是残疾人可以怎样使用应用程序的问题。一个应用程 序要想有很好的可访问性,必须与运行平台一起,让残疾人可以通过使用适当的 辅助技术(提供其他用户接口的工具)来使用这些应用程序。很多政府和企业都 有一些强制要求应用程序为实现可访问性而采用的标准。

Sun 希望 Java 语言能够成为一种 “编写一次就可以随处运行(write once, run everywhere,即 WORE)” 的环境。这意味着可以在一台机器上开发和测 试 Java 代码(例如在 Windows® 上),然后不经测试就可以在另外一个 Java 主机上运行同样的Java 代码。对于大部分情况来说,Java 技术都可以成 功实现这种功能,但是 AWT 却是一个弱点。由于 AWT 要依赖于主机 GUI 的对 等体(peer)控件(其中每个 AWT 组件都有一个并行的主机控件或者对等体) 来实现这个 GUI,这个 GUI 的外观和行为(这一点更重要)在不同的主机上会 有所不同。这会导致出现 “编写一次随处测试(write once, test everywhere,即 WOTE)” 的情况,这样就远远不能满足我们的要求了。

AWT 提供了一个丰富的图形环境,尤其是在 Java V1.2 及其以后版本中更是 如此。通过 Graphics2D 对象和 Java2D、Java3D 服务,我们可以创建很多功能 强大的图形应用程序,例如画图和制表包;结合使用 JavaSound,我们还可以创 建非常有竞争力的交互式游戏。

Swing 概述

Java Swing 是 Java Foundation Classes(JFC)的一部分,它是试图解决 AWT 缺点的一个尝试。在 Swing 中,Sun 开发了一个经过仔细设计的、灵活而 强大的GUI 工具包。不幸的是,这意味着我们又要花一些时间来学习 Swing 了 ,对于常见的情况来说,Swing 有些太复杂了。

Swing 是在 AWT 组件基础上构建的。所有 Swing 组件实际上也是 AWT 的一 部分。Swing 使用了 AWT 的事件模型和支持类,例如 Colors、Images 和 Graphics。Swing 组件、布局管理器以及事件总结如下(参见 清单 4、清单 5 和 清单 6)。正如您可以看到的一样,这些组件集比 AWT 提供的组件集更为广 泛,与 SWT 组件集相比也毫不逊色。

清单 4. 基本的Swing Class 树(全部在 javax.swing 包或其子包中,“* ” 表示抽象类)

Object *Component Container *JComponent *AbstractButton JButton JMenuItem JCheckBonMenuItem JMenu JRadioButonMenuItem *JToggleButton JCheckBox JRadioButton Box Filler JColorChooser JComboBox JDesktopIcon JFileChooser JInternalFrame JLabel JLayeredPane JDesktopPane JList JMenuBar JOptionPane JPanel JPopupMenu JProgressBar JRootPane JScrollBar JScrollPane JSeparator JSlider JSplitPane JTabbedPane JTable JTableHeader *JTextComponent JEditorPane FrameEditorPane JTextPane JTextArea JtextField JPasswordField JToolBar JToolTip JTree JViewport ScrollableTabViewport Panel Applet JApplet Window Dialog JDialo

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