如何将JFrame嵌入JavaFX 2.0应用程序?

时间:2014-02-07 13:43:39

标签: java swing jframe javafx

我已经广泛搜索了stackoverflow以获取有关此主题的帮助,但是Q& As我发现它已经过时了,并且当前版本的JDK(我目前使用的是7u51)的答案已经改变了。

请注意,我从未对Swing开始精通,但我相信我理解基础知识。 (我一直更专注于应用程序内部的肉,而不是GUI)。

我正在尝试使用第三方库。第三方库要求它的组件使用JFrame。

因此,我试图了解如何将JFrame嵌入到我的JavaFX应用程序中。有一个关于用javafx.ext.swing做某事的旧答案,但JavaFX中不再包含这个答案。

帮助?

==========

我还应该补充一点:我认为目前处于测试阶段的Java 8将基于此支持我需要的内容:http://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm,但我需要看看是否有办法在不依赖于beta产品。

3 个答案:

答案 0 :(得分:1)

没有任何问题。

我不知道你是否正在寻找。

JFrame frame = new JFrame();
final JFXPanel mainJFXPanel = new JFXPanel();
frame.getContentPane().add(mainJFXPanel);
Scene scene = new Scene(rootnode);
mainJFXPanel.setScene(scene);

答案 1 :(得分:1)

  1. 创建SwingNode s
  2. 创建JComponent c
  3. 致电s.setContent(c)

答案 2 :(得分:-1)

你不能在JavaFX 2.0中使用swing控件,因为javafx控件的最超级类是Node,而在swing中,大多数超类都是Component。早期版本的JavaFx是在java swing之上实现的,但是版本2.0是从swing中分离出来的。因此,JavaFX不再提供嵌入式摆动组件功能。