Calculating the preferred size of a node before layout takes place?

Jeff Martin jeff at reportmill.com
Mon Aug 4 19:29:32 UTC 2014


I was thinking that certain nodes (e.g., TextField) won’t provide a valid pref size until the window was made visible (and the CSS had been evaluated).

A few times I’ve added code set Window Opacity to zero, do a Window show/hide, then reset Window Opacity to one. Then you should get valid pref sizes. I’m not proud of myself, but it seems to work in practice. :-)

jeff


On Aug 4, 2014, at 1:03 PM, Richard Bair <richard.bair at oracle.com> wrote:

> autosize() on Node may be what you want (sizes it then afterward you can read values)?
> 
> On Aug 4, 2014, at 10:56 AM, Mike Hearn <mike at plan99.net> wrote:
> 
>> I'd like to find the calculated height of a node in my window controllers
>> initialise() method, so I can shrink the height to zero and then animate it
>> to the right size later. However getHeight and getPrefHeight both return
>> zero in this method, presumably because it's not been laid out yet.
>> 
>> I tried calling layout() but that didn't help.
>> 
>> I don't want any visual glitches caused by a node being visible and then
>> immediately resized to invisibility. Is there a solution to my problem? I
>> feel there must be an obvious one that I'm just overlooking somehow ...
>> 
>> thanks!
> 



More information about the openjfx-dev mailing list