当前位置: 首页 > 知识库问答 >
问题:

在Swing应用程序中使用JavaFX图表

潘佐
2023-03-14

我有一个传统的Java swing应用程序(扩展了JFrame并有一个main类),它使用JFreeCharts来实现一些图表功能。我最近看了JavaFX,认为这些图表看起来更有精神,会给我的用户更好的体验。我希望将一个JavaFX图表场景嵌入到一个jInternalFrame中(它又从我的jDesktopPane调用)。

我已经学习了如何创建javafx应用程序和javafx图表的简单教程,但我仍然坚持如何在现有代码中获得场景。我所经历的一个示例向我展示了如何实现这一点,但意味着将我的项目转换为一个扩展“Application”类的javafx项目。

我怎样才能实现我想要的?不可能保留我现有的JFrame作为顶级类,并简单地向我的JInternalFrame添加一个JFXPanel。

任何帮助都会很好,请注意我已经通过一些教程,他们要求我将我的项目转换为javafx-我只是想在我现有的swing应用程序中有一个javafx场景。

非常感谢,

共有1个答案

鱼意远
2023-03-14

您不需要将Swing应用程序转换为JavaFX应用程序。您可以将JavaFX图表放置在JFXPanel中,该JFXPanel可以放置在Swing组件中。我链接的javadoc包含了在Swing应用程序中嵌入JavaFX节点的示例代码。

查看Oracle的官方JavaFX for Swing Developers教程。

还要查看swinginterop的在Swing中嵌入JavaFX示例,以便在Swing应用程序中嵌入图表。该示例由Oracle在BSD开放源码许可下提供,以便您可以在应用程序中使用它。

尽管如此,我的建议是,除非是一个庞大的现有Swing代码库,您只想在其中使用几个JavaFX特性,否则将您的应用程序编写为纯JavaFX应用程序,而不是混合的Swing/JavaFX应用程序。

 类似资料:
  • 问题内容: 我有一个传统的Java swing应用程序(扩展了JFrame并具有一个主类),该应用程序使用JFreeCharts来实现某些图表功能。我最近看过JavaFX,并认为这些图表看上去很新鲜,可以为我的用户带来更好的体验。我希望将JavaFX图表场景嵌入到jInternalFrame中(依次从我的jDesktopPane中调用它)。 我遵循了有关如何创建javafx应用程序和javafx图

  • 我有一个很大的swing应用程序,我想把javafx嵌入其中。我多次尝试这样做(通过遵循oracle教程等),但只有在声明一个新的JFrame以使用JFXPanel组件时才成功。但是,我不想使用新的框架,我想将我的Javafx代码合并到swing应用程序的根JFrame中。 我们可以将javaFX组件嵌入到JPanel而不是JFrame中吗?如果答案是肯定的,为什么我没有成功?

  • 问题内容: 我正在开发Java Swing应用程序,但也希望将JavaFX与Swing一起使用。是否有任何资源可以告诉您如何执行此操作? 问题答案: 看这里。简而言之,现在可以将JavaFX嵌入到Swing中,并且可以通过JFXPanel支持,但是不支持其他方向。

  • 问题内容: Swing应用程序现在真的被使用吗?我找不到使用它们的地方。可以跳过AWT和Swing包吗(尽管我学到了一些基础知识)? 问题答案: 如果您是专门为Web编写的,则可以跳过Swing,否则,您肯定会碰上它。如果没有Swing GUI,我从来没有在非平凡的Java应用程序上工作过。 另外,Swing是更好使用的API之一。如果您使用大多数其他工具,则会发现它们更加难以使用和/或与平台不兼

  • 问题内容: 我有一个Swing应用程序,我希望将其从意大利面条转换为对Guice使用依赖项注入。使用Guice提供诸如配置和任务队列之类的服务的过程非常好,但是我现在是从应用程序的GUI开始的,不确定如何进行。 该应用程序基本上是,在中带有一堆标签。每个选项卡都是一个单独的子类,该子类列出了各种组件,并且需要服务才能在按下某些按钮时执行操作。 在当前应用程序中,这看起来像这样: 显然,这并不完全遵

  • 我有一个swing应用程序,需要在其中运行和打开JavaFX场景/阶段。我必须在没有扩展应用程序的情况下运行它。我已经尝试了Stackoverflow上发布的大多数解决方案,但没有一个在我的情况下有效。 这是我的最新尝试,我正在获得NullPointerException。我的舞台变空了。此行->[stage.setscene(new Scene(root,SCENEWIDTH,SCENEHEIG

  • 是否可以使用JavaFX更改应用程序图标,还是必须使用Swing来完成?

  • 问题内容: 我试图通过使用JInternalFrame附加JFXPanel来使用JavaFx 2.x和Swing应用程序 我的代码如下 我有这个例外 就我的目的而言,我必须使用JInternalFrame:如何解决此问题? 问题答案: 请参阅“ Swing中的JavaFX”教程。您正在执行应在Swing线程(事件调度线程)上的JavaFX线程上运行的JavaFX操作。 幸运的是,他们从以前的错误中