Calculate preferred size and set as minimum
Miroslav Nachev
mnachev.nscenter.eu at gmail.com
Thu Aug 23 17:16:30 UTC 2018
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