首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >组件和轻量级/重量级组件之间的区别

组件和轻量级/重量级组件之间的区别
EN

Stack Overflow用户
提问于 2012-12-08 02:42:09
回答 4查看 26.3K关注 0票数 10

JPanel和JFrame有什么不同,与轻量级、重量级有什么关系?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-08 02:54:47

JPanel是一个容器,它允许将几个UI组件放在一起。JFrame是一个使用Swing编写的窗口。

所有的Swing组件都是所谓的“轻量级”组件,因为它们是用java编写的。例如,如果您运行Swing应用程序并尝试使用UI分析工具(例如windows中的WinSpy )对其进行分析,那么您只能看到一个元素:窗口(JFrame)本身。所有其他组件都是从操作系统的角度绘制的。

重量级API - AWT使用操作系统提供的可移植元素。由于java必须在各种操作系统中可移植,因此AWT非常有限。它只实现所有平台支持的屏幕元素的最小子集。然而,AWT元素被直接映射到适当的平台元素,因此UI发现工具将看到它们。这些元素被称为"heavy weight“。

票数 20
EN

Stack Overflow用户

发布于 2014-11-30 15:31:25

像"AWT“组件这样的重量级组件必须在特定平台上使用本机GUI绘制。

其中像"Swing“组件这样的轻量级组件是由java绘制的,并且不依赖于本机GUI。

票数 3
EN

Stack Overflow用户

发布于 2013-06-08 11:19:41

Swing和AWT之间的基本区别在于,Swing API是纯Java库,即它们根本不依赖于本地库来绘制图形组件。由于这一特性,它们在所有平台上都提供了一致的外观。AWT库需要本地图形库的支持,并且它们的一些GUI组件在不同的平台上看起来是不同的。此外,Swing组件在本质上不是线程安全的,您必须显式地编写同步代码来操作或重画它们,而AWT组件在多线程环境中是可信的。AWT组件被称为重量级组件,因为它们依赖于本机库。Swing组件被称为轻量级组件,因为它们独立于本机库。因此,Swing操作要快得多,因为每个操作都由Java运行时环境负责,并且不需要将事件或命令委托给本机库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13769072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档