我需要编写一个桌面应用程序,自从我开始使用Swing以来已经有一段时间了,因此无论哪种技术都有一个学习曲线。
使用JavaFX 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现在看起来绝对是要走的路。尽管Swing可能会存在很长一段时间,但它目前处于维护模式。将大型应用程序(如IntellIJ或Netbean)完全移植到JavaFX需要付出很多努力。对于那些大型应用程序来说,目前这样大规模的移植可能不值得。
状态更新2021年9月15日:
两者都是不错的选择:
两者都不太可能取代另一种:它们的目标用途略有不同,可能会在未来许多年共存。