JavaFX(第二篇)Stage和Modality.WINDOW_MODAL

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();
	}
上一篇:Parameter 'xxx' not found. Available parameters are [arg1, arg0, param1, param2]


下一篇:JavaFX的TableView相关问题