JavaFx:如何保持窗口最大化?

时间:2015-09-18 01:36:44

标签: java javafx javafx-2 javafx-8

我的应用,如果我点击“最大化按钮”,它将最大化窗口。但是如果我去另一个场景(在同一个舞台上),窗口将恢复到原始大小。那么,我该如何控制它以保持最大化? enter image description here

3 个答案:

答案 0 :(得分:0)

在Java 8实现中调用primaryStage.setMaximized(true);方法后,我使用了show();。它使其他场景最大化。

答案 1 :(得分:0)

我遇到了同样的问题。我修复它创建一个根阶段,只包含一个菜单栏和一个工具栏,如下所示: enter image description here

我在start方法中用以下内容初始化了这个窗口:

FXMLLoader loader = new FXMLLoader();

            loader.setLocation(Main.class.getResource("view/RootLayout.fxml"));
            rootLayout = (BorderPane) loader.load();
            RootController controller= loader.getController();

            // Show the scene containing the root layout.
            Scene scene = new Scene(rootLayout);
            primaryStage.setScene(scene);
            primaryStage.show();

稍后,当您想要将FXML文件或场景加载到根容器中时,您可以使用另一种方法中的下一行来创建它:

   FXMLLoader loader = new FXMLLoader();
   loader.setLocation(Main.class.getResource("view/principal.fxml"));
   AnchorPane principalOverview = (AnchorPane) loader.load();
   // Set person overview into the center of root layout.
   rootLayout.setCenter(principalOverview);
   // Get the controller instance
   controllerPrincipal = loader.getController();

这样,添加到根阶段的每个场景都将获得根的大小。

答案 2 :(得分:0)

我就这样做了:

@FXML
private Button goBtn;

Stage stage = (Stage) goBtn.getScene().getWindow();
Scene scene = goBtn.getScene();
try {
   FXMLLoader loader = new FXMLLoader(getClass().getResource("Activity.fxml"));
   scene.setRoot(loader.load());
   stage.setScene(scene);
   stage.show();
} catch (IOException e) {
   e.printStackTrace();
}