JavaFX setAlwaysOnTop 在全屏舞台上

时间:2021-05-03 02:46:22

标签: java javafx fxml

我有一个具有这些属性的主舞台。这意味着是一个安全的“锁定阶段”

    public static Stage getSecureStage(Window window) throws IOException {

    Stage stage = new Stage();

    //Take up the entire screen boundaries
    Rectangle2D visualBounds = Screen.getPrimary().getVisualBounds();
    stage.setHeight(visualBounds.getHeight());
    stage.setWidth(visualBounds.getWidth());

    //Secure the stage
    stage.setFullScreen(true);
    stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
    stage.setFullScreenExitHint(null);
    stage.initModality(Modality.APPLICATION_MODAL);
    stage.initStyle(StageStyle.UNDECORATED);

    stage.setScene(getScene(window));
    return stage;
}

通过这个锁定阶段,我希望能够让阶段内的弹出窗口保持在顶部

如您所见,该阶段在锁定阶段之上初始化。但是,如果我要单击该弹出窗口并返回到主锁定阶段,则锁定阶段将优先考虑并将其自身置于弹出窗口之上。它不会将其最小化,而只会在顶部。

我已经为弹出窗口提供了属性

popup.setAlwaysOnTop(true);
popup.initOwner(lockdownStage);

然而,这似乎不起作用。我以前没有在 Linux 上使用相同的代码运行过这个问题。如果您需要更多信息,请告诉我

1 个答案:

答案 0 :(得分:0)

解决了这个问题

stage.setFullScreen(true);
stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
stage.setFullScreenExitHint(null);

并将其设置为

stage.setMaximized(true);

使用之前的全屏设置,您还可以在弹出窗口中使用 stage.initModality(Modality.APPLICATION_MODAL);。就我而言,我希望能够与两个窗口进行交互,而不是通过模态功能将其中一个单独挑出来。

相关问题