我有一个传统的Java swing应用程序(扩展了JFrame并具有一个主类),该应用程序使用JFreeCharts来实现某些图表功能。我最近看过JavaFX,并认为这些图表看上去很新鲜,可以为我的用户带来更好的体验。我希望将JavaFX图表场景嵌入到jInternalFrame中(依次从我的jDesktopPane中调用它)。
我遵循了有关如何创建javafx应用程序和javafx图表的简单教程,但是我仍然坚持如何在现有代码中获得场景。我所经历的一个示例向我展示了如何实现此目标,但意味着将我的项目转换为扩展“应用程序”类的javafx项目。
我怎样才能实现自己想要的?是否不可能将现有的JFrame保留为顶级类,而只是将JFXPanel添加到我的jinternalframe中。
任何帮助都将非常有用,请注意,我已经看过一些教程,并且它们要求我将项目转换为javafx-我只是想在现有的swing应用程序中使用javafx场景。
非常感谢,
您无需将Swing应用程序转换为JavaFX应用程序。您可以将JavaFX 放在可以放置在Swing组件Chart中的JFXPanel中。我链接的javadoc包含用于将JavaFX节点嵌入到Swing应用程序中的示例代码。
Chart
查看Oracle 的官方JavaFX for Swing开发人员教程。
还要查看在Swing中嵌入JavaFX的示例,该示例SwingInterop在Swing应用程序中嵌入了图表。该示例由Oracle根据BSD开源许可证提供,因此您可以在应用程序中使用它。
SwingInterop
尽管如此,我的建议是将应用程序编写为纯JavaFX应用程序,而不是混合的Swing / JavaFX应用程序,除非您只是想在其中使用几个JavaFX功能而使用的庞大的现有Swing代码库。