Calculate preferred size and set as minimum

Miroslav Nachev mnachev.nscenter.eu at gmail.com
Thu Aug 23 17:34:08 UTC 2018


The GridPane is not empty:
        gridPane.add(sceneTitleHBox, 0, 0, 2, 1);
        Label usernameLabel = new Label("Username:");
        gridPane.add(usernameLabel, 0, 1);

        TextField usernameText = new TextField();
        gridPane.add(usernameText, 1, 1);

        Label passwordLabel = new Label("Password:");
        gridPane.add(passwordLabel, 0, 2);

        PasswordField passwordField = new PasswordField();
        gridPane.add(passwordField, 1, 2);
        gridPane.add(buttonLoginHBox, 0, 4, 2, 1);
        gridPane.add(buttonLoginActionMessage, 1, 6);



On Thu, Aug 23, 2018 at 8:22 PM David Grieve <david.grieve at oracle.com>
wrote:

> If your GridPane is empty, it won't have any height or width unless you
> set min.
>
>
> On 8/23/18 1:16 PM, Miroslav Nachev wrote:
> > For Button this works. For GridPane doesn't works:
> >          gridPane.applyCss();
> >          gridPane.layout();
> >          double width = gridPane.getWidth();
> >          double height = gridPane.getHeight();
> >          System.out.println("width=" + width + ", height=" + height);
> > --- exec-maven-plugin:1.5.0:exec (default-cli) ---
> > width=0.0, height=0.0
> >
> >
> > On Thu, Aug 23, 2018 at 6:56 PM Shakir Gusaroff <
> shakir.gusaroff at gmail.com>
> > wrote:
> >
> >> . In javafx 8 you can find the width and height of the node before the
> >> Stage has been shown. Use applyCss() and layout().
> >>
> >>
> >>
> >>
> >>
> >>
> >>    @Override
> >>
> >>   public void start(Stage stage) throws Exception {
> >>
> >>
> >>
> >>      Group root = new Group();
> >>
> >>      Scene scene = new Scene(root);
> >>
> >>
> >>
> >>      Button button = new Button("Hello World");
> >>
> >>      root.getChildren().add(button);
> >>
> >>
> >>
> >>      root.applyCss();
> >>
> >>      root.layout();
> >>
> >>
> >>
> >>      double width = button.getWidth();
> >>
> >>      double height = button.getHeight();
> >>
> >>
> >>
> >>      System.out.println(width + ", " + height);
> >>
> >>
> >>
> >>      stage.setScene(scene);
> >>
> >>      stage.show();
> >>
> >>   }
> >>
> >>
> >> On Thu, Aug 23, 2018 at 10:35 AM Miroslav Nachev <
> >> mnachev.nscenter.eu at gmail.com> wrote:
> >>
> >>> Hi,
> >>>
> >>> Is there any standard way to calculate the preferred size for Scene,
> >>> Node/Pane and Stage/Window?
> >>> I want once a form/pane is visualized, it cannot be minimized to a
> certain
> >>> size. Since I did not find such a built-in opportunity, at the moment
> I am
> >>> doing the following:
> >>>
> >>>          Scene scene = new Scene(gridPane);
> >>>          primaryStage.setScene(scene);
> >>>          primaryStage.sizeToScene();
> >>>
> >>>          primaryStage.show();
> >>>          primaryStage.setMinWidth(primaryStage.getWidth() + 1);
> >>>          primaryStage.setMinHeight(primaryStage.getHeight() + 1);
> >>>          primaryStage.setWidth(640);
> >>>          primaryStage.setHeight(480);
> >>>          primaryStage.show();
> >>>
> >>> The first call to primaryStage.show() (in orange) I do to calculate the
> >>> minimum panel size (Scene/GridPane), then set that size as minimum on
> >>> primaryStage, and finally set the size I want and visualize the panel
> >>> again.
> >>>
> >>> The unpleasant side effect is, that the panel is no longer at the
> center
> >>> of
> >>> the screen.
> >>>
> >>> Any ideas?
> >>>
> >>>
> >>> Regards,
> >>> Miro.
> >>>
>
>


More information about the openjfx-dev mailing list