Fixed?: maximize and no resizable, and popup

This commit is contained in:
rubenpirreram
2026-05-24 16:55:04 +02:00
parent 795c71e0e0
commit 09a8d00d33
3 changed files with 23 additions and 19 deletions
@@ -49,7 +49,6 @@ public class GUI extends Application implements IView {
@Override
public void start(Stage stage) throws Exception {
this.primaryStage = stage;
primaryStage.setResizable(false);
loaderLogin = new FXMLLoader(getClass().getResource("/GUIScene/login.fxml"));
loginScene = new Scene(loaderLogin.load());
controllerLogin = loaderLogin.getController();
@@ -81,7 +80,6 @@ public class GUI extends Application implements IView {
showLogin();
primaryStage.setTitle("Mesos");
primaryStage.setMaximized(true);
primaryStage.setOnCloseRequest(e -> {
Platform.exit();
System.exit(0);
@@ -113,8 +111,14 @@ public class GUI extends Application implements IView {
primaryStage.setScene(leaderboardScene);
controllerLeaderboard.render();
} else {
double w = primaryStage.getWidth();
double h = primaryStage.getHeight();
primaryStage.setScene(mainScene);
controllerMain.initPopup(mainScene);
primaryStage.setWidth(w);
primaryStage.setHeight(h);
primaryStage.setMinHeight(h);
primaryStage.setMinWidth(w);
primaryStage.setResizable(false);
controllerMain.render();
}
}
@@ -78,13 +78,23 @@ public class MainFXMLController {
popup = new Popup();
mainHBox.sceneProperty().addListener((obs, oldScene, newScene) -> {
if (newScene != null) {
newScene.getRoot().applyCss();
newScene.addEventFilter(MouseEvent.MOUSE_PRESSED, e -> {
if (popup.isShowing()) popup.hide();
});
newScene.getRoot().applyCss();
newScene.windowProperty().addListener((o2, ow, nw) -> {
if (nw != null) {
nw.focusedProperty().addListener((o3, wf, nf) -> {
if (!nf) popup.hide();
});
}
});
}
else {
popup.hide();
}
});
initPopup();
renderBackground();
isError=false;
}
@@ -272,7 +282,7 @@ public class MainFXMLController {
private void renderPlayer(Player player,VBox target) {
VBox card = new VBox(3);
VBox.setMargin(card, new Insets(0,15,0,15));
VBox.setMargin(card, new Insets(8,15,8,15));
card.getStyleClass().add("player-card");
card.setPadding(new Insets(4));
@@ -544,7 +554,7 @@ public class MainFXMLController {
addHoverZoom(skipBtn);
addHoverZoom(detailsBtn);
VBox playerList = new VBox(17);
VBox playerList = new VBox();
playerList.setFillWidth(true);
for (Player p : controller.miniModel.players.values()) {
renderPlayer(p, playerList);
@@ -553,7 +563,7 @@ public class MainFXMLController {
}
// ==== POPUP ====
public void initPopup(Scene mainScene) {
public void initPopup() {
popupCards = new HBox(10);
popupCards.setAlignment(Pos.CENTER);
popupCards.setPadding(new Insets(10));
@@ -572,16 +582,6 @@ public class MainFXMLController {
popup.getScene().setFill(Color.TRANSPARENT);
}
});
mainScene.getWindow().focusedProperty().addListener((obs, wasFocused, isNowFocused) -> {
if(!isNowFocused)
popup.hide();
});
mainScene.getWindow().sceneProperty().addListener((obs, oldScene, newScene) -> {
if(newScene!=mainScene)
{
popup.hide();
}
});
}
private void showPopup() {
+1 -1
View File
@@ -19,7 +19,7 @@
fillWidth="false"
maxHeight="Infinity"
maxWidth="Infinity"
HBox.hgrow="NEVER">
HBox.hgrow="ALWAYS">
<HBox.margin>
<Insets top="5" right="5" bottom="5" left="5" />
</HBox.margin>