JavaFX 2.2 Stage 始终位于顶部



我有一个普通的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);

它对我来说效果很好。

这是文档。

像这样(我正在使用警报)

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

如果您希望它始终挡住其他窗口,只需设置:

alert.initModality(Modality.APPLICATION_MODAL);

AFAIK,没有 API 可以让 JavaFX 阶段始终位于顶部。但是你可以通过使用JFXPanel将JavaFX场景放在JFrame中。

相关内容

  • 没有找到相关文章

最新更新