From 559fca34e10e1f2bc43ec3e05018d0ba6b97420b Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Mon, 18 May 2026 18:47:27 +0200 Subject: [PATCH] Fixed: Maximize(windows) --- .../it/polimi/ingsw/gc14/View/GUI/GUI.java | 34 +++++++++++-------- .../gc14/View/GUI/MainFXMLController.java | 11 +++++- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java index 1cfe4ed..651b698 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/GUI.java @@ -77,6 +77,8 @@ public class GUI extends Application implements IView { mainScene = new Scene(loaderMain.load()); controllerMain = loaderMain.getController(); + + showLogin(); stage.setTitle("Mesos"); primaryStage.setMaximized(true); @@ -99,42 +101,46 @@ public class GUI extends Application implements IView { this.controller=controller; } + public void applyAndRender(NetworkEvent event) { Platform.runLater(() -> { event.apply(miniModel); if (controller.miniModel.currentState.getGameStage() == TOTEM_CHOICE) { - controllerTotem.render(); primaryStage.setScene(totemScene); - primaryStage.setMaximized(true); - } - else if (controller.miniModel.currentState.getGameStage() == GameStages.ENDED) { - controllerLeaderboard.render(); + controllerTotem.render(); + } else if (controller.miniModel.currentState.getGameStage() == GameStages.ENDED) { + boolean sceneChange = primaryStage.getScene() != leaderboardScene; primaryStage.setScene(leaderboardScene); - primaryStage.setMaximized(true); + if (sceneChange) { + primaryStage.setMaximized(false); + Platform.runLater(() -> primaryStage.setMaximized(true)); + } + controllerLeaderboard.render(); } else { - controllerMain.render(event); + boolean sceneChange = primaryStage.getScene() != mainScene; // ← era un'altra scena? primaryStage.setScene(mainScene); - primaryStage.setMaximized(true); - + if (sceneChange) { + primaryStage.setMaximized(false); + Platform.runLater(() -> primaryStage.setMaximized(true)); + } + controllerMain.render(event); } }); } + public void render() { if (!Platform.isFxApplicationThread()) { Platform.runLater(this::render); return; } if (controller.miniModel.currentState.getGameStage() == TOTEM_CHOICE) { - controllerTotem.render(); primaryStage.setScene(totemScene); - primaryStage.setMaximized(true); + controllerTotem.render(); } else { - controllerMain.render(); primaryStage.setScene(mainScene); - primaryStage.setMaximized(true); + controllerMain.render(); } } - @Override public void showMessage(String message) { diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java index de63d82..ad94f33 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java @@ -95,6 +95,10 @@ public class MainFXMLController { // ==== RENDER ==== public void render() { + if (mainHBox.getWidth() == 0 || mainHBox.getHeight() == 0) { + Platform.runLater(() -> render()); + return; + } renderUpper(); renderBoard(); renderLower(); @@ -103,6 +107,10 @@ public class MainFXMLController { } public void render(NetworkEvent event) { + if (mainHBox.getWidth() == 0 || mainHBox.getHeight() == 0) { + Platform.runLater(() -> render(event)); + return; + } if (event.getEventType() == EventType.SLOT_CHOICE) { renderBoard(); renderSidePanel(); @@ -323,9 +331,10 @@ public class MainFXMLController { if (!cardList.isEmpty()) { StackPane img = createCard(cardList.getLast(), true, true, parent); Label label = new Label(String.valueOf(cardList.size())); + label.setTranslateY(-55); + label.setTranslateX(10); label.getStyleClass().add("label-large"); StackPane.setAlignment(label, Pos.TOP_RIGHT); - StackPane.setMargin(label, new Insets(8, 8, 0, 0)); img.getChildren().add(label); img.setOnMouseClicked(e -> openPopup(new ArrayList<>(cardList))); parent.getChildren().add(img);