1

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

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

4

1 回答 1

0

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

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

其中 sceneRoot 是您最高级别的 JavaFX 容器之一……例如边框或其他。

于 2018-01-09T13:19:47.203 回答