Label prefHeight vs wrapText
Martin Sladecek
martin.sladecek at oracle.com
Wed May 28 17:10:28 UTC 2014
On 28.5.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
>
Thanks!
> ...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.
>
Probably a property would be better since it doesn't change the behavior
(and Labeled is all over the controls). It calls for a 3-state property
(no wrapping, wrapping only when space available, wrapping), but it's
too late for that unfortunately. Anyway, looks like we have another
candidate for JIRA ;-)
-Martin
> Werner
>
> On 28.05.2014 16:17, Martin Sladecek wrote:
>> Hi Werner,
>> the important min/pref/max height is the one with width parameter as
>> Label is horizontally biased. So while minHeight(width) == 17,
>> prefHeight(width) == 34.
>> But in your case, with ListView's prefHeight == 1000, you'll overflow by
>> over 400px. VBox does evenly subtract these overflow pixels from
>> children until it gets to their minimum. Which happens in case of the
>> Label.
>> Vgrow is ignored when shrinking (see javadoc for setVgrow). Currently,
>> neither VBox nor GridPane allow you define policy for children when the
>> pane is below it's pref size and children need to be shrunk. Seems like
>> a good candidate for a Tweak in JIRA. ;-)
>> If you need to keep your Label at some height, currently you can only
>> raise it's minHeight, but I understand that in this case it may be
>> tricky as it depends on the width.
>>
>> -Martin
More information about the openjfx-dev
mailing list