彼岸樱速彼岸樱速
Home
梦起
activeMQ
Article
Category
Tag
Timeline
Home
梦起
activeMQ
Article
Category
Tag
Timeline
  • ActiveMQ
  • Arthas
  • AWT && Swing
  • Docker
  • Dubbo
  • ElasticSearch
  • Etcd
  • Excel
  • Git
  • Sort

AWT && Swing


aliases:

  • AWT && Swing 标题: AWT && Swing

AWT和Swing的区别

笔记本: AWT && Swing

创建时… 2021/10/10 1:01 更新时… 2021/10/10 1:02

作者: 彼岸樱速

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中的包。 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, 也就是通过牺牲速度来实现应用程序的功 能。

关于awt和swing

笔记本: AWT && Swing

创建时… 2021/8/5 0:19 更新时… 2021/8/5 0:21

作者: 彼岸樱速

说实在的,这两个Java的知识,在工作中几乎不会用到

网上评论

1、认为它少的主要原因是桌面应用本身的没落了. 我 的感觉其实是,要比通常想象的多.

如果说,作为服务端是java的定制化桌面应用,甚至可能 是一个比较合适的选择.

不考虑性能的情况下,如果消耗足够的精力,swing也几 乎能实现近乎无限的扩展性.不过这个时代,多数情况下 要求人不要掌握过多的知识,所以还是现成的东西更好.

2、不建议放精力在Java GUI上,除非很感兴趣; 个人觉得把swing发挥到极致的是Intellij,反正我是膜 拜的不行; 对于个人开发者来说,平时做一些桌面小工具还是可以 用Swing来做的;

总结 由于实现的不同,awt是机遇本地方法的C/C++程序, 运行速度比较快,消耗资源少; Swing是基于awt的Java程序,所以运行速度慢 。对于嵌入式应用,往往 采用AWT;通常在标准的Java应用中,使用Swing牺 牲运行速度换取开发效率和功能。

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不需占有太多系统资源, 因此称为轻量级组件!!!)

最近更新:: 2026/1/8 05:11
Contributors: wuyuying
Prev
Arthas
Next
Docker