27

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

使用 JavaFX 2 做我的应用程序有什么优势吗?

4

2 回答 2

33

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
于 2012-05-14T19:32:44.363 回答
3

两者都是不错的选择:

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

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

于 2012-09-05T05:20:00.820 回答