PrefWidth/Height calculations only works if stage is shown
Richard Bair
richard.bair at oracle.com
Thu Aug 8 14:40:42 PDT 2013
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