JavaFX 2.2阶段始终位于顶部

我有一个普通的JFrame(应用程序的一部分)和第二个JavaFX窗口(我不能在JavaFX阶段使用JFrame)。 问题是JavaFX窗口应始终位于所有其他窗口之上。

我不知道如何解决这个问题! 有任何想法吗?

我知道这是一个老线程,但事情在不断变化。 来到JDK 8u20是一个新方法primaryStage.setAlwaysOnTop(true);

这将是让舞台始终处于最佳状态的最简单方法。 如需早期访问8u20,请访问该网站 。

 public class KeyholeDemo extends Application { @Override public void start(Stage primaryStage) { primaryStage.initStyle(StageStyle.TRANSPARENT); primaryStage.setAlwaysOnTop(true); // code omitted... } public static void main(String[] args) { launch(args); } } 

从这篇精彩的文章中获取的示例代码

我现在有类似的问题。

我使用这行代码来获得始终最佳的效果:

 stage.initModality(Modality.APPLICATION_MODAL); 

这对我来说可以。

这是文档。

AFAIK,没有API可以让JavaFX阶段始终排在最前面。 但是你可以使用JFXPanel将JavaFX场景放在JFrame中。

像这样(我正在使用Alert)

  Stage stage = (Stage) alert.getDialogPane().getScene().getWindow(); stage.setAlwaysOnTop(true); 

如果你想要它总是阻止其他窗口,只需设置:

 alert.initModality(Modality.APPLICATION_MODAL);