ARTICLE AD BOX
I'm not able to set the initial window size. The app always displays 200x200.
public class tcase extends Application { @Override public void start(Stage primaryStage) { primaryStage.setTitle("test case"); root.setPrefWidth(1044); root.setPrefHeight(728); root.setBottom(statusBar); Scene scene = new Scene(root, 1044, 728); primaryStage.sizeToScene(); primaryStage.setScene( scene ); primaryStage.show(); } public static void main(String[] args) { launch(args); } }1,73420 silver badges22 bronze badges
1
There might be other ways to solve this, but I was not able to find it.
This works for me:
public class tcase extends Application { @Override public void start(Stage primaryStage) { primaryStage.setTitle("test case"); root.setPrefWidth(1044); root.setPrefHeight(728); root.setBottom(statusBar); Scene scene = new Scene(root, 1044, 728); primaryStage.sizeToScene(); primaryStage.setScene( scene ); primaryStage.show(); Task<Void> setWinSize = new Task<Void>() { @Override protected Void call () throws Exception { Thread.sleep(500); Platform.runLater(() -> { primaryStage.setWidth(1044); primaryStage.setHeight(728); }); Thread.sleep(250); Platform.runLater(() -> { primaryStage.setWidth(1044); primaryStage.setHeight(728); }); return null; } @Override protected void succeeded() { super.succeeded(); } @Override protected void failed() { super.failed(); } }} public static void main(String[] args) { launch(args); } }1,73420 silver badges22 bronze badges
1 Comment
If my other comment doesn't work, does setting the stage's size in a Stage.setOnShown event handler (without any sleeping) do the job? Also, I may be missing it, but where do you actually execute this Task?
2026-04-28T04:34:51.957Z+00:00
Stage.centerOnScreen
Call the centerOnScreen method in JavaFX.
myStage.setScene( myScene ); myStage.show(); myStage.centerOnScreen();For best results, call immediately after show.
349k130 gold badges957 silver badges1.3k bronze badges
Explore related questions
See similar questions with these tags.
