SWING和AWT

AWT,抽象窗口工具包,是Java提供的创建图形用户界面的工具集,可用于生成现代的、鼠标控制的图形应用接口,且无需修改,就能够在各类软硬件平台上运行。
而swing是Java语言在编写图形用户界面方面的新技术,Swing采用模型-视图-控制设计范式,Swing可使Java程序在同一个平台上运行时可以有不一样外观以供用户选择。
二者不一样在于一个是初代工具集,一个是进化版的工具集,用户不会再知足于初始的功能,而是更加注重于附加价值,明显从这点上,Swing是比AWT要好不少。
写法上,Swing的头文件引用包须要用到Javax,组件调用时也须要在AWT的基础上加上“J”。
AWT :是经过调用操做系统的native方法实现的,因此在Windows系统上的AWT窗口就是Windows的风格,而在Unix系统上的则是XWindow风格。  AWT 中的图形函数与  操做系统 所提供的图形函数之间有着一一对应的关系,咱们把它称为peers。 也就是说,当咱们利用  AWT 来构件图形用户界面的时候,咱们其实是在利用  操做系统 所提供的图形库。因为不一样  操做系统 的图形库所提供的功能是不同的,在一个平台上存在的功能在另一个平台上则可能不存在。为了实现Java语言所宣称的"一次编译,处处运行"的概念,AWT 不得不经过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各类通用型操做系统所提供的图形功能的交集。因为AWT 是依靠本地方法来实现其功能的,咱们一般把AWT控件称为重量级控件。
Swing :是所谓的Lightweight组件,不是经过native方法来实现的,因此Swing的窗口风格更多样化。可是,Swing里面也有heaveyweight组件。好比JWindow,Dialog,JFrame
Swing是所谓的Lightweight组件,不是经过native方法来实现的,因此Swing的窗口风格更多样化。可是,Swing里面也有heaveyweight组件。好比JWindow,Dialog,JFrame
Swing由纯Java写成,可移植性好,外观在不一样平台上相同。因此Swing部件称为轻量级组件( Swing是由纯JAVA CODE所写的,所以SWING解决了JAVA因窗口类而没法跨平台的问题,使窗口功能也具备跨平台与延展性的特性,并且SWING不需占有太多系统资源,所以称为轻量级组件!!!)

AWT和Swing都是java中的包。java

AWT(Abstract Window Toolkit):抽象窗口工具包,早期编写图形界面应用程序的包。函数

Swing :为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展。    工具

AWT和Swing的实现原理不一样:
       AWT的图形函数与操做系统提供的图形函数有着一一对应的关系。也就是说,当咱们利用 AWT构件图形用户界面的时候,其实是在利用操做系统的图形库。
       不一样的操做系统其图形库的功能可能不同,在一个平台上存在的功能在另一个平台上则可能不存在。为了实现Java语言所宣称的"一次编译,处处运行"的概念,AWT不得不经过牺牲功能来实现平台无关性。所以,AWT 的图形功能是各操做系统图形功能的“交集”。
        由于AWT是依靠本地方法来实现功能的,因此AWT控件称为“重量级控件”。 

       而Swing ,不只提供了AWT 的全部功能,还用纯粹的Java代码对AWT的功能进行了大幅度的扩充。
       例如:并非全部的操做系统都提供了对树形控件的支持, Swing则利用了AWT中所提供的基本做图方法模拟了一个树形控件。
       因为 Swing是用纯粹的Java代码来实现的,所以Swing控件在各平台通用。
       由于Swing不使用本地方法,故Swing控件称为“轻量级控件”。 

       AWT和Swing之间的区别:
       1)AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。
       2)AWT的控件在不一样的平台可能表现不一样,而Swing在全部平台表现一致。操作系统

       在实际应用中,应该使用AWT仍是Swing取决于应用程序所部署的平台类型。例如:
       1)对于一个嵌入式应用,目标平台的硬件资源每每很是有限,而应用程序的运行速度又是项目中相当重要的因素。在这种矛盾的状况下,简单而高效的AWT固然成了嵌入式Java的第一选择。
       2)在普通的基于PC或者是工做站的标准Java应用中,硬件资源对应用程序所形成的限制每每不是项目中的关键因素。因此在标准版的Java中则提倡使用Swing, 也就是经过牺牲速度来实现应用程序的功能。设计

相关文章
相关标签/搜索