JavaFX(第二篇)Stage和Modality.WINDOW_MODAL

时间:2021-07-09 12:28:28   收藏:0   阅读:14

JavaFX作为一套java GUI库,我使用它画了只包含一个按钮的GUI,在linux的eclipse运行,竟然内存占用120MB!swing做同样的事占用60MB

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();
	}

原文:https://blog.51cto.com/u_6132776/3019252

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!