From f7d2039d0291e855b899833f6c2ae0c387827345 Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Thu, 20 Apr 2023 00:10:38 +0200 Subject: [PATCH] Centralize the windows when the scene size changes --- .../ntnu/idatt1002/demo/controller/BudgetController.java | 8 ++++++++ .../java/no/ntnu/idatt1002/demo/controller/MainMenu.java | 8 ++++++++ .../ntnu/idatt1002/demo/controller/SceneController.java | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java index e6059904..b9687511 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java @@ -7,6 +7,7 @@ import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; +import javafx.geometry.Rectangle2D; import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; @@ -16,6 +17,7 @@ import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.text.Text; import javafx.stage.Modality; +import javafx.stage.Screen; import javafx.stage.Stage; import no.ntnu.idatt1002.demo.data.Budget.BudgetItem; import no.ntnu.idatt1002.demo.data.Budget.BudgetRegister; @@ -319,6 +321,12 @@ public class BudgetController extends FinanceController { Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); Scene scene = new Scene(root); stage.setScene(scene); + + //Centralize the new screen + Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds(); + stage.setX((primScreenBounds.getWidth() - stage.getWidth()) / 2); + stage.setY((primScreenBounds.getHeight() - stage.getHeight()) / 2); + stage.show(); } catch(Exception ioe) { diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java index 1a9d55c0..b8d4e8c0 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java @@ -9,6 +9,7 @@ import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; +import javafx.geometry.Rectangle2D; import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; @@ -20,6 +21,7 @@ import javafx.scene.control.Label; import javafx.scene.control.ProgressBar; import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; +import javafx.stage.Screen; import javafx.stage.Stage; import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget; import no.ntnu.idatt1002.demo.data.Budget.GeneralBudget; @@ -250,6 +252,12 @@ public class MainMenu { Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); Scene scene = new Scene(root); stage.setScene(scene); + + //Centralize the new screen + Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds(); + stage.setX((primScreenBounds.getWidth() - stage.getWidth()) / 2); + stage.setY((primScreenBounds.getHeight() - stage.getHeight()) / 2); + stage.setResizable(false); stage.show(); } diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java index 50b7bb14..92f9f3b7 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java @@ -5,6 +5,7 @@ import java.io.IOException; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; +import javafx.geometry.Rectangle2D; import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; @@ -12,6 +13,7 @@ import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Dialog; import javafx.stage.Modality; +import javafx.stage.Screen; import javafx.stage.Stage; import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget; import no.ntnu.idatt1002.demo.data.Budget.FileHandlingSelectedBudget; @@ -128,6 +130,12 @@ public class SceneController { Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow(); Scene scene = new Scene(root); stage.setScene(scene); + + //Centralize the new screen + Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds(); + stage.setX((primScreenBounds.getWidth() - stage.getWidth()) / 2); + stage.setY((primScreenBounds.getHeight() - stage.getHeight()) / 2); + stage.show(); } -- GitLab