我需要编写一个桌面应用程序,而且自从我开始使用 Swing 以来已经有一段时间了,所以这两种技术都有一个学习曲线。
使用 JavaFX 2 做我的应用程序有什么优势吗?
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 日状态更新:
两者都是不错的选择:
两者都不太可能取代另一个:它们的目标用途略有不同,并且可能会在未来很多年共存。