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