块所有者窗口的Java FX(Block owner window Java FX)

2019-08-18 00:48发布

我想阻止所有者窗口在JavaFX的一个弹出。

我初始化我弹出这样的:

popUp = new Popup();
popUp.getContent().add(content);
popUp.show(pane.getScene().getWindow());

有了这个,我还可以在第一个窗口(窗口窗格)工作。 我想禁用这个动作,我想用户只需工作在弹出。

这该怎么做 ?

谢谢。

Answer 1:

使用一个阶段 ,而不是一个弹出 。

示出了阶段之前,调用stage.initModality如任一APPLICATION_MODAL或WINDOW_MODAL酌情。 还援引stage.initOwner到新阶段的父窗口,这样它会适当地阻止它的WINDOW_MODAL情况。

Stage stage = new Stage();
stage.initModality(Modality.WINDOW_MODAL);
stage.initOwner(pane.getScene().getWindow());
stage.setScene(new Scene(content));
stage.show();


Answer 2:

谢谢,最佳解决方案:例如用FXML载荷文件中:

@Override
    public void start(Stage primaryStage) throws IOException {
        Parent root = FXMLLoader.load(getClass().getResource("DialogView.fxml"));
        primaryStage.initModality(Modality.APPLICATION_MODAL); // 1 Add one
        Scene scene = new Scene(root);        
        primaryStage.setScene(scene);
        primaryStage.initOwner(primaryStage.getScene().getWindow());// 2 Add two
        primaryStage.show();

    }

    public static void main(String[] args) {
        launch(args);

    }


文章来源: Block owner window Java FX
标签: java javafx-2