在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 ......任何人?
答案 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();