我有一个传统的Java swing应用程序(扩展JFrame并有一个主类),它使用JFreeCharts来实现某些图表功能。我最近看过JavaFX并认为这些图表看起来很多,并且会给我的用户带来更好的体验。我希望将一个JavaFX图表场景嵌入到jInternalFrame中(后者又从我的jDesktopPane中调用)。
我已经按照一个关于如何创建javafx应用程序和javafx图表的简单教程,但我仍然坚持如何在现有代码中获取场景。我经历过的一个例子向我展示了如何实现这一目标,但意味着将我的项目转换为扩展“application”类的javafx项目。
我怎样才能实现我想要的目标?是不是可以将现有的JFrame保留为顶级类,只需将JFXPanel添加到我的jinternalframe中。
任何帮助都会很棒,请注意我已经完成了一些教程,他们要求我将我的项目转换为javafx - 我只想在现有的swing应用程序中使用javafx场景。
非常感谢,
答案 0 :(得分:5)
您无需将Swing应用程序转换为JavaFX应用程序。您可以将JavaFX Chart
放在JFXPanel中,该JavaFX for Swing Developers可以放在Swing组件中。我链接的javadoc包含用于在Swing应用程序中嵌入JavaFX节点的示例代码。
查看Oracle的官方Embedding JavaFX in Swing教程。
另请查看SwingInterop
{{1}}示例,以便在Swing应用程序中嵌入图表。该示例由Oracle在BSD开源许可下提供,以便您可以在您的应用程序中使用它。
尽管如此,我的建议,除非它是一个庞大的,现有的Swing代码库,你只想使用几个JavaFX特性,就是将你的应用程序编写为纯JavaFX应用程序而不是混合的Swing / JavaFX应用