首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWT和Swing....why使用Swing?

AWT和Swing....why使用Swing?
EN

Stack Overflow用户
提问于 2014-07-08 02:54:57
回答 2查看 2.4K关注 0票数 5

我一直在读一些关于AWT和Swing的文章,但我不太清楚Swing是如何工作的。我已经读过,Swing位于AWT的顶部,它是轻量级的(相对于AWT)。我的问题是“如果它使用AWT并继承AWT容器,它怎么可能是轻量级的?”我很困惑。为什么在AWT上使用Swing而不是仅仅使用then....why?AWT会减慢摇摆组件的速度吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-08 03:09:26

“如果它使用AWT并继承AWT容器,它怎么可能是轻量级的?”

轻量级意味着Swing组件没有它自己的本机对等点,它共享一个(公共)本机对等点。这个本机对等体来自它被添加到的AWT容器(这通常是窗口),并且在容器层次结构中的所有Swing组件之间共享.

AWT提供了“繁重”的提升,连接到本机操作系统,并提供了Swing组件呈现的核心通道。它还提供了许多本机集成,如SystemTrayDesktop和每像素半透明APIs,可供Swing使用。

为什么在AWT上使用Swing而不是仅仅使用then....why?

这是意见问题,但一般来说,AWT被Swing所取代,并提供了一个更加灵活的图形化API来开发。因为它不依赖于平台本机组件,这意味着您可以自由地开发您需要的组件,并且可以在多个平台上运行。

Swing还借用了很多AWT,包括事件队列。

JTreeJTable将是我在AWT上使用Swing的第一个论点;)

AWT会减慢摇摆组件的速度吗?

不怎么有意思。AWT使用DirectX和OpenGL管道已经有一段时间了,因为它是本地API和Java之间的转换层,所以它通常非常擅长它所做的事情。另外,没有AWT,你就没有秋千.

票数 5
EN

Stack Overflow用户

发布于 2014-07-08 03:09:34

要理解Swing如何比AWT轻量级,您需要理解“对等”的概念。对等体是操作系统提供的小部件,例如按钮对象或入口字段对象。

AWT组件通常是一个包含具有对等接口类型的引用的组件类。此引用指向本机对等实现。

说到挥杆,一切都变得清晰而直接。除了顶级容器之外,Swing实现不依赖于单个平台。它拥有所有的控制和资源。Swing需要的是驱动系统的事件输入,以及从顶级AWT容器继承的图形、字体和颜色。普通的Swing组件可以看作是AWT容器上的一个逻辑区域。

Swing组件被称为“轻量级”,因为它们不需要本机OS对象来实现其功能。Swing组件(如JButton、JTextArea等)是轻量级的,因为它们没有操作系统对等体。很少有Swing组件可能需要OS对等程序,并且会产生类似于AWT的性能。

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

https://stackoverflow.com/questions/24622968

复制
相关文章

相似问题

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