PrefWidth/Height calculations only works if stage is shown

Anton Epple toni.epple at eppleton.de
Wed Aug 28 07:02:18 PDT 2013


That is very useful in many contexts. Thanks for sharing!

--Toni

Am 08.08.2013 um 23:40 schrieb Richard Bair <Richard.Bair at oracle.com>:

> The peers don't impact the preferred sizes at all. Use this one instead of impl_reapplyCSS (wrong one)
> 
> impl_processCSS(true)
> 
> 
> On Aug 8, 2013, at 2:35 PM, Tom Schindl <tom.schindl at bestsolution.at> wrote:
> 
>> No same result!
>> 
>>> BorderPane g = new BorderPane();
>>> TableView<String> v = new TableView<String>();
>>> g.setCenter(v);
>>> Scene s = new Scene(g);
>>> primaryStage.setScene(s);
>>> g.impl_reapplyCSS();
>>> System.err.println(g.prefWidth(-1)); // 0
>>> primaryStage.show();
>> 
>> Could it be that this does not work because if a stage is not yet shown
>> the peers have not been created?
>> 
>> Tom
>> 
>> On 08.08.13 23:29, Richard Bair wrote:
>>> Yes, the problem is that CSS has not been executed yet. If you call reapplyCSS (did we add that API yet? or is it still that impl_?) then you can get a proper size from the control.
>>> 
>>> Richard
>>> 
>>> On Aug 8, 2013, at 2:26 PM, Tom Schindl <tom.schindl at bestsolution.at> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I've been trying to open a window in the minimal dimension needed by
>>>> components but it looks like size calculations prefHeight/prefWidth only
>>>> works if the stage is shown.
>>>> 
>>>> I need the dimensions before showing the stage because I want to
>>>> position it on the lower right of the screen before showing the stage
>>>> because if doing it afterwards leads to flickering.
>>>> 
>>>> 
>>>>> BorderPane g = new BorderPane();
>>>>> TableView<String> v = new TableView<String>();
>>>>> g.setCenter(v);
>>>>> Scene s = new Scene(g);
>>>>> primaryStage.setScene(s);
>>>>> System.err.println(g.prefWidth(-1)); // 0
>>>>> primaryStage.show();
>>>>> System.err.println(g.prefWidth(-1)); // 248
>>>> 
>>>> Is this working as designed?
>>>> 
>>>> Tom
>>> 
>> 
> 



More information about the openjfx-dev mailing list