JFrame / JFXPanel中的Java-FX MenuBar:首先单击无法识别

时间:2018-01-08 07:43:14

标签: java swing javafx menu jfxpanel

我想在JFrame(Netbeans RCP)上放置一个JavaFX MenuBar。所以我在JFrame上放置了一个JFXPanel,并保留了FX菜单栏。但每当我点击菜单(当它没有聚焦时),第一次点击不起作用。只有在我点击两次后,才显示菜单。

[在第一条评论中提供了答案/解决方法]

1 个答案:

答案 0 :(得分:0)

在您第一次单击之前,您的JavaFX场景没有焦点。这主要是因为JavaFX渲染循环是与底层NetBeans RCP使用的Swing渲染循环完全独立的线程。 JFXPanel仅促进线程之间的呈现和布局的同步,而不是事件传输 您通常可以通过向JavaFX场景添加焦点请求来解决此问题,通常是在最高级别。尝试添加以下内容:

sceneRoot.setOnMouseEntered(event -> {
     sceneRoot.requestFocus();
});

其中sceneRoot是您最高级别的JavaFX容器之一...如边框或其他任何内容。