combobox - JavaFX - 如何使 ComboBox hgrow?

标签 combobox javafx javafx-8

我对 JavaFX(8)、HBox、ComboBox 和 HGrow 有问题。
HGrow 不能与 ComboBox 结合使用。
(信息:使用 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>

此代码将导致:

enter image description here

我也试过下面的代码(没有成功,这段代码什么都不做):
HBox.setHgrow(uiController.fxCboTest, Priority.ALWAYS);

有没有人知道如何制作 ComboBox HGrow?

最佳答案

这是对我自己问题的回答。
经过一些测试,我发现在设置时最大宽度 MAX_VALUE ,它的工作原理:

enter image description here

这将导致来自 SceneBuilder 的以下代码/xml:

...
<children>
   <ComboBox maxWidth="1.7976931348623157E308" prefWidth="150.0" HBox.hgrow="ALWAYS" />
</children>
...

哪里 1.7976931348623157E308 看起来像 Double.MAX_VALUE。
这也适用于 Hbox 中的多个控件。
enter image description here

在我看来,这不是很因此/始终如一 .
我仍然不明白为什么 HGrow 不适用于 ComboBox。

关于combobox - JavaFX - 如何使 ComboBox hgrow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29489880/

相关文章:

java - 是否有 JGoodies FormLayout 和 DefaultFormBuilder 的 JavaFX 等价物?

java - 如何在 JavaFX 中创建通用确认对话框

java - 在 JavaFx 中自动调整作为图形分配给单元格的形状

JavaFX 组合框样式按钮(如果可编辑)

c# - 如何向 ComboBox 集合添加/删除项目?

Java 组合框未从 SQL 填充

c# - 将变量值增加+1

java - 在 Jform(GUI) 的 3 个组合框中显示来自 java DB 的日期字段

listview - 使用 JSoup 作为服务显示超链接的 ListView

java - 如何将内部类 Controller 绑定(bind)到FXML?