用于 GUI 构建的 Java AWT 或 Swing?

Posted

技术标签:

【中文标题】用于 GUI 构建的 Java AWT 或 Swing?【英文标题】:Java's AWT or Swing for GUI construction? 【发布时间】:2010-10-07 05:36:41 【问题描述】:

我需要为服务器监控过程编写一个相当简单的 GUI。它将有几个选项卡,这些选项卡导致日志拖尾、资源计数以及开始和顶部控制。这里没有什么花哨的。对于这么简单的事情,AWT 或 Swing 哪个 Java 框架更有意义。

【问题讨论】:

【参考方案1】:

使用 Swing 或 SWT,因为 AWT 没有内置选项卡。

从Java 6 Update 10 开始,Swing 有了全新的外观和感觉,即“Nimbus 外观和感觉”。它看起来很棒,而且速度非常快,因为它使用矢量图形。

【讨论】:

呃,Swing 的另一个新默认外观?诚然,1.4(紫色)的外观很丑,但 1.5 的外观并没有那么糟糕,6 的外观也不差。【参考方案2】:

摇摆是要走的路。这是一个更干净的编程界面,而且看起来更好。

【讨论】:

由于它的设计方式,它的资源消耗也更轻。【参考方案3】:

如果您打算将您的 gui 移动到多个平台上,请选择 AWT。否则,Swing 会为您提供更广泛的组件集。

【讨论】:

我猜你所说的“多平台”是指非桌面平台。【参考方案4】:

如果您在 Swing 和 AWT 之间进行选择,Swing 是您的最佳选择。

如果你有灵活性,我至少会考虑SWT。它速度更快,与平台的外观和感觉相匹配,并且似乎在发布之间减少了移植障碍和回归问题。设置你的第一个项目有一个小障碍(获得正确的 jar 等),但除此之外,它并不难工作。

【讨论】:

SWT 确实不错,但与默认情况下可用于所有 Java 实现的 Swing 相比,它是一个额外的本机库依赖项。除非您特别需要 SWT 提供的东西,否则出于可移植性/维护的原因,我通常会推荐 Swing。 YMMV。【参考方案5】:

AWT 是第一个 Java GUI 框架,它有很多缺陷,被 Swing 所取代。它仍在 JDK 中的主要原因是为了向后兼容,并且因为某些类被 Swing 重用。

然而,未来(即使对于桌面)可能是JavaFX。

【讨论】:

【参考方案6】:

如果您正在寻找更好看的 GUI,您可以在此地址查看实质外观包:https://substance.dev.java.net/see.html

【讨论】:

正确,但没有真正回答问题。

以上是关于用于 GUI 构建的 Java AWT 或 Swing?的主要内容,如果未能解决你的问题,请参考以下文章

Java GUI 填充错误

gui界面2048小游戏

GUI编程

Java GUI的体系介绍

十java_GUI

11 - JavaSE之GUI