繁体   English   中英

JavaFX和Swing - 寻找中间立场?

[英]JavaFX and Swing — finding a middle ground?

我和Swing一样,只是开始学习JavaFX。 我对SO的使用做了一些回答,但仍然无法下定决心。

是否有可能充分利用这两个世界?

就像使用JavaFX一样,我想给出一些视觉上吸引人的图形,并在需要时向JavaFX添加一些Swing?

您可以通过JFXPanel控件在Swing应用程序中使用JavaFX 请参见SwingInterOp示例。 您还可以从基于Swing的复杂平台(如NetBeans RCP)中使用JavaFX。

JavaFX / Swing集成的当前限制是您可以将JavaFX组件嵌入Swing应用程序中,而不能将Swing组件嵌入JavaFX应用程序中。 RT-12100 Swing in JavaFX嵌入支持目前计划用于Java 8。

如果你有一个绿色领域的新应用程序开发,我建议选择一种技术或另一种技术,并坚持或至少保持集成点本地化,少数和远。 这两个框架都很庞大,需要时间来学习,而且您将避免任何集成问题,例如需要注意Swing处理是在Swing Event Dispatch线程上完成的,而JavaFX处理是在JavaFX Application Thread上完成的。

JavaFX还与SWT集成,并且当前集成比JavaFX / Swing集成更简单(因为只需要担心一个GUI线程)。

以下是Oracle的JavaFX / Swing互操作示例的屏幕截图:

swinginterop图像

我对SO的使用做了一些回答,但仍然无法下定决心。

而不是这样做,我建议选择一个小应用程序并在Swing和JavaFX中从头开始实现它,看看你喜欢哪个。 花费时间更好,因为没有替代经验的手 - 然后,如果您仍然有问题(希望更具体和有针对性),请回到StackOverflow进行研究或询问。

这取决于您学习它们的动机。 如果您主要希望在不久的将来提升您的简历并对企业产生吸引力,那么(至少目前)还有更多的应用程序用Swing编写,而不是JavaFX,纯粹是因为后者是一个更新的工具包。

但是,如果你想更长远或者只是想要最好的工具,我个人觉得JavaFX提供了更多的灵活性,更容易以美观的方式编写代码,也更容易学习(API背后的API)目前唯一反对的是我确实想包含一些功能, 但是还没有 (当然,这当然是您使用较新的工具包所得到的) 。)

我也建议不要将两者混在一起。 我目前参与了两个使用JavaFX的项目,一个完全基于JavaFX,另一个涉及FX和swing。 后者更容易维护,主要是因为分派线程不同。

如前面的海报所述,您现在可以在Swing应用程序中使用JavaFX。 但是由于Oracle宣布JavaFX是Java桌面的未来,所以为什么不学习它呢? 我试图保持两者的最新状态,这是一件苦差事。 我计划在未来专注于JavaFX - 减少混淆自己的可能性。

也就是说,JavaFX似乎仍然不是JDK的正式成员,尤其是与其他语言(例如Clojure)结合使用时。 根据JavaFX版本的不同,有多种方法可以将其引入构建工具中。 但每次发布时情况都会好转。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM