【问题标题】:JavaFX 2 vs Swing for a pure Windows desktop app用于纯 Windows 桌面应用程序的 JavaFX 2 与 Swing
【发布时间】:2012-05-22 04:42:24
【问题描述】:

我需要编写一个桌面应用程序,而且我开始使用 Swing 已经有一段时间了,所以这两种技术都有一个学习曲线。

使用 JavaFX 2 开发我的应用程序有什么好处吗?

【问题讨论】:

标签: swing javafx javafx-2


【解决方案1】:

4 年前我有同样的问题,并得出结论认为我最好使用 Swing,因为当时许多第三方库仍然是为 Swing 编写的。此外,来自 Sun 的 1.0 版本通常有点粗糙(我在 JSF 1.0 和 JPA 1.0 上烧毁了自己:-)。

如今,许多库都有 JavaFX 对应物或可用作 JavaFX 库。也就是说,还有很多图书馆仍然是 Swing 独有的。我还用 JavaFX 2.0 做了一些小事情,看起来真的很完整。我还没有碰到过什么炫技。

您需要检查除了 Swing / JavaFX(以及哪个)之外,您将使用多少个外部 UI 库。如果答案不是很多或很多有 Java FX 替代品(或者自己做起来很简单),我肯定会选择 JavaFX。此外,您仍然可以在 JavaFX 中使用 Swing 组件。

如前所述,JavaFX 将在未来弃用 Swing,而 Oracle 似乎致力于 JavaFX(它也将开源)。所以我强烈推荐 JavaFX。

2014 年 4 月 13 日状态更新:

如果您在 2 年前不相信:JavaFX 现在看起来肯定是要走的路。尽管 Swing 可能会存在很长时间,但它目前处于维护模式。将大型应用程序(如 IntellIJ 或 Netbeans)完全移植到 JavaFX 需要付出很多努力。对于那些大型应用程序,目前可能不值得如此大规模的端口。

2021 年 9 月 15 日状态更新:

  • JavaFX 社区仍然很强大。 OpenJFX 还在那里,有一个更华丽的家。
  • Gluon 等公司(我不隶属于他们)为 OpenJFX 提供商业支持 LTS 版本。
  • GraalVM 支持 JavaFX,允许您制作 JavaFX 应用程序并将它们作为本机二进制文件分发(即不需要 JVM)。
  • 有很多优秀的开源 JavaFX 组件库可用,例如 TilesFX

【讨论】:

  • “如前所述,JavaFX 将被弃用” 如谁所说?什么时候?我不会相信,除非您可以提供指向支持该声明的 Oracle 页面的链接。这种说法令人难以置信,因为 a) AWT 未被弃用,& b) 用您自己的话来说,Swing 组件可以在 Java FX 中使用。
  • @Thompson:我也想知道。 (或许他在想:oracle.com/technetwork/java/javafx/overview/faq-1446554.html#6
  • @Thompson,我认为他在那里得到了一个额外的“d”。我认为他的意思是说“JavaFX 将弃用 Swing”。见这里:oracle.com/technetwork/java/javafx/overview/faq-1446554.html#6
  • @Vineet 事实上,额外的“d”不应该出现在那句话中:-)。 JavaFX 不会很快被弃用(据我所知)。我删除了额外的“d”。有趣的是,一个字母如何改变句子的整个含义......
【解决方案2】:

两者都是不错的选择:

  • 如果您想要一个图形增强的丰富应用程序,JavaFX 2.0 的特性可能非常吸引人。它旨在为您提供对用户体验和视觉效果的大量创造性控制。只要确保它在您的目标平台上受支持....
  • 如果您想要一个在尽可能多的平台上运行的标准桌面应用程序,那么 Swing 可能是更安全的选择(因为 Swing 保证可作为所有现代 Java 发行版的一部分使用)。它还具有更成熟的 3rd 方库的优势。

两者都不太可能取代另一个:它们的目标用途略有不同,并且可能会在未来很多年共存。

【讨论】:

    猜你喜欢
    • 2013-05-17
    • 2011-12-10
    • 2016-05-03
    • 2011-01-19
    • 2021-07-12
    • 2014-08-22
    • 2011-11-21
    • 2014-10-06
    相关资源
    最近更新 更多