二者的优缺点:轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

AWT 是抽象窗口组件工具包,是 java 最早的用于编写图形节目应用程序的开发包。 
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, 也就是通过牺牲速度来实现应用程序的功能。

  Java Swing是Java Foundation Classes(JFC)的一部分,它是试图解决AWT缺点的一个尝试。从这一点上来说,Swing可以说是站在前人(以AWT的表现,实在很难称之为巨人)的肩膀上了。SWING解决了AWT的很多缺点。相对于AWT, Swing是轻量级元件。SWING 提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。 它们是JFC的一部分。 它们支持可更换的观感和主题(各种操作系统默认的特有主题),然而Swing不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意观感。 轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

转载于:https://www.cnblogs.com/hualidezhuanshen/archive/2013/06/12/3132479.html

java中awt和swing是的关系以及区别相关推荐

  1. swing java awt_Java awt和Swing的区别

    Java awt是Java中早期用于编写图形图形应用程序的开发包,Swing是在awt的基础上构建的一套新的图形图像界面系统.简单来说,Swing是awt的扩展以及改良.那么我们来说一下关于Java中 ...

  2. 【Java】AWT和Swing概述

    目录 一.前言 awt继承体系 container容器 常见的API 容器的演示 AWT常用组件 Swing概述 Swing的优势: Swing组件和AWT组件的对应关系: 一.前言 这是一个很少用的 ...

  3. java中父类与子类的关系以及使用

    java中父类与子类的关系以及使用 在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类.子类可以通过extends关键字来继承父类.做个比较通俗的比喻,就像一个父亲可以有多个亲孩子, ...

  4. 除号java_关于java中除号和数据类型的关系

    关于java中除号和数据类型的关系 import java.util.*; import java.io.*; public class chufa{ public static void main( ...

  5. 解决IDEA中AWT、Swing组件中文显示乱码框框

    解决IDEA中AWT.Swing组件中文显示乱码&框框 ​ 1. Run–>Edit Configurations 2. Modify options --> Add VM opt ...

  6. 【Java学习笔记之二十九】Java中的equals和==的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...

  7. Java中方法重载和方法重写的区别

    文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...

  8. java中String new和直接赋值的区别

        Java中String new和直接赋值的区别     对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...

  9. Java中print、printf、println的区别 详解

    Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...

最新文章

  1. [Windows] Windows 8.1 取消在任务栏显示应用商店的应用
  2. 前端学习(2965):路由的参数传递
  3. QQ炫舞登录完后服务器没显示,qq炫舞进入界面后就没有了怎么回?
  4. 数据库和python的结合_redis数据库及与python交互用法简单示例
  5. 安装go client调用Kubernetes API
  6. libc.so.6: version 'GLIBC_2.14' not found报错提示的解决方案
  7. org.springframework.beans.factory.BeanDefin…
  8. linux怎么修改数据库字段长度,Postsql 修改字段长度和类型
  9. jinja2中的过滤器
  10. QQGame找茬游戏辅助工具
  11. 简单的创建一个小型服务器
  12. 谭浩强C++ 第八章
  13. mongoose之bulkWrite
  14. 使用PicGo+Gitee做图床
  15. 彤云垂暮,落日渐歇,秋水潋滟,葳蕤已覆。
  16. Zemax光学设计(四)——几何像差
  17. 医疗机构工作汇报PPT模板
  18. 面试说“C加加”?中式口语到底坑过多少人...
  19. 智能电视+android+4.0接收视频,智能电视Android4.0系统魅力小析
  20. GAN开山之作论文解读及感想

热门文章

  1. badusb代码_badusb攻击代码
  2. 搜索c盘大文件_硬核干货,如何给c盘“减肥”?
  3. python约瑟夫环_Python语言之如何实现约瑟夫环问题
  4. MySQL 读写分离 部分_一个完整的mysql读写分离环境包括以下几个部分
  5. 兆比特每秒和兆字节每秒_宽带中的“M(兆)”是什么意思?
  6. 常用代码生成工具汇总(转)
  7. python 取模_中年大叔学编程-Python的基础语法和运算符
  8. python 3.6.3自带的编程调试环境包括了_序章:资料预处理(python3.6 可用fortran unformatted sequencial data读取模块)...
  9. java代码_【JAVA虚拟机(JVM)精髓】05-Java代码的执行过程
  10. phpyii框架倒叙_快速入门php框架(Lumen thinkphp Yii)