gpt4 book ai didi

java - AWT 与 Swing 的对比……为什么要使用 Swing?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:10:08 24 4
gpt4 key购买 nike

我一直在阅读有关 AWT 与 Swing 的一些资料,但我不太清楚 Swing 的工作原理。我读过 Swing 位于 AWT 之上并且它是轻量级的(与 AWT 相对)。我的问题是“如果它使用AWT并继承AWT容器,它怎么能轻量级呢?”我很困惑。那么为什么要使用 Swing 而不是 AWT……为什么不只使用 AWT? AWT 会降低 Swing 组件的速度吗?

最佳答案

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

AWT 组件通常是一个组件类,它包含对等接口(interface)类型的引用。此引用指向 native 对等实现。

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

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

关于java - AWT 与 Swing 的对比……为什么要使用 Swing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com