Stage是javaFX程序的窗口,它的方法initModality( Modality )可以指定窗口的几种状态。
其中一个状态是Modality.WINDOW_MODAL , stage A设置了这个属性,则A的父stage就被block(文档上的说法)直到A关闭才解除block。
那么什么算是block呢?
经过下面代码测试,发现父stage右上角的放大缩小可用,但是右上角的关闭按钮被block,里面的交互控件也被block
@Override
public void start(Stage arg0) throws Exception {
VBox vBox = new VBox();
BorderPane borderPane = new BorderPane();
javafx.scene.control.Button button = new javafx.scene.control.Button("hello");
button.setOnAction((e)->{
System.out.println("click");
});
borderPane.setCenter(button);
arg0.setScene(new Scene(borderPane,200,200));
Stage stage = new Stage();
stage.setTitle("sub stage");
stage.setScene(new Scene(vBox));
stage.initOwner(arg0);
stage.initModality(Modality.WINDOW_MODAL);
arg0.initStyle(StageStyle.DECORATED);
arg0.show();
stage.showAndWait();
}