阻止父级,直到子级关闭

时间:2013-11-13 12:03:07

标签: javafx-2 javafx fxml

我有一个控制器,我的按钮的动作事件打开了一个子阶段。问题是当我关闭父阶段时,子阶段也会关闭。只要子阶段打开,我想阻止父阶段关闭。

enter image description here

URL url = getClass().getResource("Message.fxml");
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(url);
fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory());
root = (Parent)fxmlLoader.load(url.openStream());            
Stage stage = new Stage();
//stage.initStyle(StageStyle.UNDECORATED);
//stage.setFullScreen(true);
stage.setTitle("Welcome User");
stage.setScene(new Scene(root, 675, 
stage.show();

2 个答案:

答案 0 :(得分:12)

设置以下内容:

stage.initModality(Modality.WINDOW_MODAL);
stage.initOwner(primaryStage);

您可以通过将mainStage放入主类中的静态变量来获取它:

public static Stage primaryStage;

@Override
public void start(Stage primaryStage) {
    this.primaryStage = primaryStage;
    ...
}

然后

stage.initOwner(MainApp.primaryStage);

答案 1 :(得分:0)

只需将以下属性设置为舞台对象...

stage.initModality(Modality.APPLICATION_MODAL);