堆栈面板和场景自动调整大小

时间:2016-02-25 09:00:35

标签: java user-interface javafx resize stackpanel

在javafx应用程序中,我的舞台包含一个独特的StackPanel。 在这个StackPanel中,我添加了我想要显示的面板(取决于用户想要的内容)。

加载StackPanel视图:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/RootLayout.fxml"));
stackLayout = (StackPane) loader.load();
Scene scene = new Scene(stackLayout);
stage.setScene(scene);
stage.show();

向此StackPanel添加视图:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/MapGame.fxml"));
AnchorPane map = (AnchorPane) loader.load();
stackLayout.getChildren().clear();
stackLayout.getChildren().add(map);

我想要的是根据StackPane的子节点大小自动调整StackPane和Stage的大小... 例如,我的StackPane是600x400,AnchorPane是800x600,但是当显示应用程序时,大小是600x400 ......任何人?

1 个答案:

答案 0 :(得分:0)

在这些行之后

stage.setScene(scene);
stage.show();

添加以下内容:

stage.sizeToScene();

修改:在您的代码中尝试使用此订单:

FXMLLoader loader = new FXMLLoader();

loader.setLocation(Main.class.getResource("view/RootLayout.fxml"));
stackLayout = (StackPane) loader.load();

loader.setLocation(Main.class.getResource("view/MapGame.fxml"));
AnchorPane map = (AnchorPane) loader.load();

stackLayout.getChildren().clear();
stackLayout.getChildren().add(map);

Scene scene = new Scene(stackLayout);
stage.setScene(scene);
stage.show();
stage.sizeToScene();