提问者:小点点

JavaFX 2 vs Swing用于纯Windows桌面应用程序


我需要编写一个桌面应用程序,自从我开始使用Swing以来已经有一段时间了,因此无论哪种技术都有一个学习曲线。

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


共2个答案

匿名用户

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

今天,许多库都有JavaFX对应库或作为JavaFX库提供。也就是说,还有很多库仍然是Swing独有的。我还用JavaFX 2.0做了一些小事情,它看起来真的很完整。我没有遇到任何搅局者。

您需要检查除了Swing/JavaFX之外,您还将使用多少外部UI库(以及哪一个)。如果答案是不多或不多,我肯定会选择JavaFX。此外,您仍然可以在JavaFX中使用Swing组件。

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

状态更新2014年4月13日:

  • JavaFX开源已经有一段时间了:https://wiki.openjdk.java.net/display/OpenJFX/Main
  • 社区致力于JavaFX;只有没有摇摆对应物的JavaFX库开始出现。
  • Oracle已被证明致力于JavaFX。

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

状态更新2021年9月15日:

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

匿名用户

两者都是不错的选择:

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

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