我有
JavaFX(8),HBox,ComboBox和HGrow的问题.
HGrow不能与ComboBox结合使用.
(INFO:使用TextField(而不是ComboBox),它按预期工作!)
HGrow不能与ComboBox结合使用.
(INFO:使用TextField(而不是ComboBox),它按预期工作!)
这是我的FXML代码:
<?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <VBox prefHeight="117.0" prefWidth="285.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.test.TestController"> <children> <HBox prefHeight="105.0" prefWidth="196.0" VBox.vgrow="ALWAYS"> <children> <ComboBox fx:id="fxCboTest" prefHeight="25.0" prefWidth="62.0" HBox.hgrow="ALWAYS" /> </children> </HBox> </children> </VBox>
本准则将导致:
HBox.setHgrow(uiController.fxCboTest,Priority.ALWAYS);
有没有人知道如何制作ComboBox HGrow?
解决方法
这是我自己的问题的答案.
经过一些测试,我发现当将Max Width设置为MAX_VALUE时,它可以工作:
经过一些测试,我发现当将Max Width设置为MAX_VALUE时,它可以工作:
这将导致以下来自SceneBuilder的code / xml:
... <children> <ComboBox maxWidth="1.7976931348623157E308" prefWidth="150.0" HBox.hgrow="ALWAYS" /> </children> ...
其中1.7976931348623157E308看起来像Double.MAX_VALUE.
这也适用于HBox中的多个控件.
在我看来,这不是非常/持续.我仍然不知道为什么HGrow不能用于ComboBox.