<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>