PrefWidth/Height calculations only works if stage is shown

Richard Bair Richard.Bair at oracle.com
Wed Aug 28 11:46:00 PDT 2013


I could have sworn we have already had this conversation and we had a name picked out and everything (maybe it was applyCSS?). I don't see it in Node yet though.

Richard

On Aug 28, 2013, at 11:29 AM, John Smith <John_Smith at symantec.com> wrote:

> Is there any plan to make impl_processCSS(true) public API?
> Should I create a Jira for this?
> If there were a public API, would processCSS be the right name for it?
> 
> The real issue seems to be that you sometimes want to know the size of something before you show it and there doesn't seem to a good way to get that info using just the public API (that I know of).
> 
> -----Original Message-----
> From: openjfx-dev-bounces at openjdk.java.net [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Anton Epple
> Sent: Wednesday, August 28, 2013 7:02 AM
> To: Richard Bair
> Cc: openjfx-dev at openjdk.java.net
> Subject: Re: PrefWidth/Height calculations only works if stage is shown
> 
> 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