Sorry to dig up this old thread. Just wanted to mention a much simpler workaround if a label inside a vbox does not wrap its text:

label.setMinHeight(Region.USE_PREF_SIZE);

As before the trick is to prevent vbox from reducing the label height below its pref height to preserve the wrapping - even if other children of the vbox need to be shrunk.

Werner

On 28.05.2014 18:10, Werner Lehmann wrote:
Martin,

thanks for the explanation. Feels good to finally understand this ;-)
And while I created a ticket as per your suggestion...

    [#RT-37309] VBox: vshrink layout hint similar to vgrow

...it seems I can use this as a workaround:

     label1.minHeightProperty().bind(Bindings.createDoubleBinding(
         () -> label1.prefHeight(vbox.getWidth()),
         vbox.widthProperty()));

Maybe something similar could be made available per label boolean
property. So basically the ability to ask a label to consider wrapping
when calculating its minHeight... I can imagine that this might have
made more sense as a default behavior: if people explicitly ask for
wrapping text, they would probably accept a larger minHeight.

Werner

Reply via email to