Java 将JFXPANEL放入窗格中

Java 将JFXPANEL放入窗格中,java,javafx,fxml,Java,Javafx,Fxml,我想使用JFXPanel作为视频播放器。 我使用fxml文件来设计应用程序。(不适用于视频播放器本身) 如何将JFXPanel添加到DOM Hirarchy中的正确位置 panel.add(jfxPanel, BorderLayout.CENTER); 看 或者使用JavaFX场景生成器(Eclipse、Netbeans等)您正在混合使用JavaSwing和JavaFX(旧技术和新技术) JPanel VideoEmbedded是Java Swing,JFXPanel JFXPanel\u

我想使用JFXPanel作为视频播放器。 我使用fxml文件来设计应用程序。(不适用于视频播放器本身)

如何将JFXPanel添加到DOM Hirarchy中的正确位置

 panel.add(jfxPanel, BorderLayout.CENTER);


或者使用JavaFX场景生成器(Eclipse、Netbeans等)

您正在混合使用JavaSwingJavaFX(旧技术和新技术) JPanel VideoEmbedded是Java Swing,JFXPanel JFXPanel\u VideoEmbedded是JavaFX


查看此线程和上面的链接

我不明白为什么您的
JPanel
是在您的控制器类中定义的。您是否在FXML中定义它?如果是,您如何管理中描述的线程问题?(如果没有,为什么它被注释为
@FXML
,您是如何初始化它的?)。。。您的FXML文件将
VideoEmbedded
定义为
窗格
,但您的控制器将其声明为
JPanel
,这显然是不兼容的。因此,不清楚(说得委婉一点)您试图从这些微小的代码片段中做什么。你能解释一下你到底想达到什么目的吗?为什么需要混合使用swing组件和JavaFX组件?好的,我的目的是在窗格中显示一个视频。但我相信只有在JFXPanel中才有可能。我通过定义它来进行斗争,我可以使用我的fxml文件中相同的fx:id访问窗格。因此我可以说VideoEmbed将JFXPanel放在你体内,这样我就可以看到它并播放视频。(我现在只能听到音频)在Jquery中,我只需执行$('JFXPanel_VideoEmbedded')。附件(“#VideoEmbedded”);这根本不是真的。播放视频的JavaFX组件是一个
MediaView
(它使用
MediaPlayer
媒体
)。它可以放在JavaFX场景图中您需要的任何位置,例如在
VBox
等中。
JFXPanel
用于将JavaFX场景嵌入Swing应用程序中;它是一个可以显示JavaFX场景的Swing组件。如果您不需要混合使用Swing和JavaFX,请不要:您需要处理很多棘手的多线程。只有我们e一个纯JavaFX应用程序。是的。
MediaView
Node
的一个子类;它可以添加到
窗格或任何子类中(从您的FXML看来,您希望它位于
VBox
)。最简单的方法是在这个答案中使用像JavaFX scene builder这样的可视化布局工具。我实际上使用了fxml文件的场景;-)我只是不能在那里插入JFXPanel。
//inside the controller
final JFXPanel JFXPanel_VideoEmbedded= new JFXPanel();

@FXML
private JPanel VideoEmbedded;
...
//inside the videoplayer function
VideoEmbedded.add(JFXPanel_VideoEmbedded); //this doesn't work
 panel.add(jfxPanel, BorderLayout.CENTER);