AWT与Swing
来源:互联网 发布:手机计算器软件 编辑:程序博客网 时间:2024/04/30 15:35
GUI(图形用户界面)为程序员提供图形界面,其最初设计的目的是构建一个通用的GUI,使其能够在所有的平台上运行,但java基础类AWT(Abstract Window Toolkit)并没有达到这个要求,于是Swing出现了,它是AWT的增强组件,但是并不能完全替代AWT。以下对两者进行一些对比:
AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,我们把它称为peers。 也就是说,当我们利用 AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的”一次编译,到处运行”的概念,AWT 不得不通过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。
Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。例如说并不是所有的操作系统都提供了对树形控件的支持, Swing 利用了AWT 中所提供的基本作图方法对树形控件进行模拟。由于 Swing 控件是用100%的Java代码来实现的,因此在一个平台上设计的树形控件可以在其他平台上使用。由于在Swing 中没有使用本地方法来实现图形功能,我们通常把Swing控件称为轻量级控件。
AWT和Swing之间的基本区别:AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。对于一个嵌入式应用来说,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT 当然成了嵌入式Java的第一选择。而在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的Java中则提倡使用Swing, 也就是通过牺牲速度来实现应用程序的功能。
通俗的话:
AWT 是抽象窗口组件工具包,是 java 最早的用于编写图形节目应用程序的开发包。
Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的。
- SWING与AWT
- SWing 与 AWT
- java AWT 与Swing
- AWT与Swing
- AWT与Swing
- swt与awt/swing互嵌
- AWT与Swing的区别
- AWT与Swing的区别
- AWT与Swing的区别
- swing与awt以及Adapte
- Swing与AWT的区别与共同点
- AWT与Swing区别与联系
- swing & awt
- AWT与Swing的学习笔记
- SWING与AWT小应用程序的区别
- SWING与AWT小应用程序的区别
- 关于SWT与AWT/Swing的关系
- SWT、Swing 或 AWT 比较与适用范围
- hdu 5795 A Simple Nim(2016 Multi-University Training Contest 6——博弈)
- JAVA线程:概念与原理
- 详解JS运算符
- wamp开启memcache扩展
- 《流程的永恒之道:工作流及BPM技术的理论、规范、模式及最佳实践》书籍导读
- AWT与Swing
- 日常小结-关于模拟登陆的小结-okhttp库的使用小结
- Java集合小总结(花了一晚上的时间)
- 2016年8月8日,我的博客开通了( ̄▽ ̄)
- 树-堆结构练习——合并果子之哈夫曼树
- 12、阻塞队列
- JAVA中抽象类与接口的区别?
- C++模拟实现堆heap和优先级队列poriorty_queue
- 高德地图java.lang.UnsatisfiedLinkError异常 找不到.so文件