如何将一个JFrame嵌入到JavaFX 2.0应用程序中?

5
我已经在stackoverflow上广泛搜索了这个主题的帮助,但我找到的问答都比较旧,而且答案已经针对当前版本的JDK(我目前使用7u51)发生了变化。
请注意,我一开始并不是非常精通Swing,但我相信我理解了基本原理。(我一直更专注于应用程序内部的内容,而不是GUI)。
我正在尝试使用第三方库。第三方库要求其组件使用JFrame。
因此,我想知道如何将JFrame嵌入我的JavaFX应用程序中。有一个关于使用javafx.ext.swing做一些事情的旧答案,但JavaFX已不再包含它。
求助?
==================
我还应该补充一点:我认为Java 8(目前处于beta版本)将支持我需要的功能,基于这篇文章:http://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm,但我需要看看是否有方法可以不依赖于beta产品来实现这一点。

这个不再起作用了吗?https://dev59.com/zUbRa4cB1Zd3GeqPyTcA?rq=1 - Aaron Digulla
这个应该有帮助:https://dev59.com/zlfUa4cB1Zd3GeqPJ6j4?rq=1 - Aaron Digulla
第一条评论是正确的... javafx.ext.swing* 已经消失了... - adeena
至于第二个链接...我也看到了,并查看了其中的链接(还有另一个级别)...发现要么是参考javafx.ext.swing,要么是难以证明的第三方库。整个练习是为了证明一个特定的第三方库对我的团队有用...使用另一个未知的第三方库并不能帮助我们。 - adeena
1
即使JDK仍处于beta版本,JavaFX应用程序中嵌入的Swing功能也不会被删除。这已经由Oracle向其用户宣布,并且现在几乎处于最终阶段。虽然没有人能说它将来永远不会被删除,但我可以告诉你它可能不会被删除。请放心使用JDK 8。您还可以在网络上搜索JavaFX 8和JavaFX 8 Roadmap的新闻。祝您的项目好运。 :) - Loa
显示剩余2条评论
3个回答

2
  1. 创建一个SwingNode s
  2. 创建一个JComponent c
  3. 调用s.setContent(c)
(注:该段内容为关于在Java中使用JavaFX的SwingNode类和JComponent类的相关操作,具体细节请参考相关文档)

JFrame不是JComponent。因此它不能回答这个问题。 - Pierre Vittet

1

我不确定这是否是您要寻找的内容。

我不知道这是否是您正在寻找的内容。

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

请在回答中只使用英语。 - martijnn2008

-1

你不能在JavaFX 2.0中使用Swing控件,因为javafx控件的最高超类是Node,在swing中,最高超类是Component。在早期版本的JavaFx中,它是基于java swing实现的,但2.0版与swing分离。因此,JavaFX不再提供嵌入swing组件的功能。


您可以使用 SwingNode 嵌入 Swing 组件。 - Dakshinamurthy Karra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接