<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>What you are likely seeing is that the minimum always wins over
the other values.</p>
<p>The minimum height is set to the constant USE_PREF_SIZE, which
means that it will take the preferred size for the minimum height.</p>
<p>When it comes to size priorities (min, pref and max), minimum
always wins, then comes maximum, then comes preferred.</p>
<p>So in this case, the preferred size is say 20. The minimum
follows the preferred, also 20. You set maximum to 1. Minimum
> Maximum, so Maximum is ignored.</p>
<p>What you could try is set preferred size smaller instead; there
should be no need to change minimum or maximum then.</p>
<p>--John<br>
</p>
<div class="moz-cite-prefix">On 08/11/2025 21:30, Cormac Redmond
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAG_-AaBUk78-=EiNwN9v7g3yr=FKiA7JW0S5PDYFDmzsgm8ENQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div class="gmail_default"
style="font-family:verdana,sans-serif">Hi,</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">I have found a height
bug when I am trying to reduce the height of one ComboBox item
(a Separator) in a simple ComboBox.</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">One would expect that
to achieve this, you'd set the maximum height for that
particular ListCell; but this has no effect.</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">Instead what I need to
do is set the <i>minimum</i> height (but to the value I wish
to be the maximum height), and I must <b>also </b>set the <i>maximum
</i>height to any value (if I do not, my minimum height (i.e.,
my desired maximum) gets ignored)...</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">For example, if I want
the maximum height of this Separator to be 6, I must set the
minimum height to 6 and I must set the maximum height to
anything, even 1.</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">Obviously this is
counter-intuitive and doesn't make any logical sense.</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">Example to reproduce
(running from JFX master branch):</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default" style=""><font face="monospace">public
class ComboBoxHeightBug extends Application {<br>
public static void main(String[] args) {<br>
launch(args);<br>
}<br>
<br>
public void start(Stage stage) {<br>
ComboBox<Object> cb = new ComboBox<>();<br>
cb.getItems().addAll("Apple", "Banana", </font>
<span style="font-family:monospace">new Separator()</span> <font
face="monospace">, "Carrot", "Lettuce");<br>
cb.setCellFactory(_ -> new ListCell<>() {<br>
protected void updateItem(Object item, boolean
empty) {<br>
super.updateItem(item, empty);<br>
if (empty || item == null) {<br>
setText(null);<br>
setGraphic(null);<br>
setStyle("");<br>
</font><span style="font-family:monospace">
// Set back to default</span><br
style="font-family:monospace">
<font face="monospace">
setMinHeight(USE_PREF_SIZE);<br>
setMaxHeight(Double.MAX_VALUE);<br>
} else if (item instanceof Separator) {<br>
setText(null);<br>
setGraphic((Separator) item);<br>
setDisable(true);<br>
setMinHeight(6); // This is required for
any "max height" to apply, and appears to be the value that
is used to determine height<br>
setMaxHeight(1); // Setting this (to 6)
should work on its own, it doesn't, the value appears
irrelevant -- but it MUST be set to get the separator height
to be 6<br>
} else {<br>
setText(item.toString());<br>
setGraphic(null);<br>
setStyle("");<br>
// Set back to default<br>
setMinHeight(USE_PREF_SIZE);<br>
setMaxHeight(Double.MAX_VALUE);<br>
}<br>
}<br>
});<br>
<br>
cb.getSelectionModel().selectFirst();<br>
stage.setScene(new Scene(cb, 200, 100));<br>
stage.show();<br>
}<br>
}</font></div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">Note: I have noticed a
few issues like this in general, whereby it requires trial and
error to get <i>some</i> desired height to apply; without any
apparent logic as to how these values are being arrived at or
how they're triggered to be used (I have logged bugs before on
this)...</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">Kind Regards,</div>
<div class="gmail_default"
style="font-family:verdana,sans-serif">Cormac</div>
</div>
</blockquote>
</body>
</html>