19

如何在ComboBox使用 FXML 中设置默认值?

<ComboBox fx:id="cbo_Bacteriologie_Aesculine" prefHeight="21.0" prefWidth="105.0" GridPane.columnIndex="1" GridPane.rowIndex="0">
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:value="NVT" />
            <String fx:value="Bezig" />
            <String fx:value="Positief" />
            <String fx:value="Negatief" />
        </FXCollections>
    </items>
</ComboBox>

我想NVT被默认选中。我尝试添加selected="selected"等,但似乎找不到正确的语法。

是否可以使用 Scene Builder 编辑列出的项目?我似乎找不到它。

4

3 回答 3

49

用这个:

<ComboBox>
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:value="NVT" />
            <String fx:value="Bezig" />
            <String fx:value="Positief" />
            <String fx:value="Negatief" />
        </FXCollections>
    </items>
    <value>
        <String fx:value="NVT" />
    </value>
</ComboBox>
于 2013-01-21T10:11:56.720 回答
8

我认为这在 FXML 中是不可能的。您将需要在控制器中的组件初始化中执行此操作,例如使用以下行cbo_Bacteriologie_Aesculine.getSelectionModel().setSelectedIndex(1);来选择元素 Bezig。

但是,如果您找到一种在 FXML 中执行此操作的方法,我很感兴趣。

编辑:在 FXML 中是可能的。您可以在 Guedolino 的回答 ( https://stackoverflow.com/a/14436371/1344424 ) 中看到它,这应该成为这个问题的正确答案。

于 2012-07-27T14:36:45.083 回答
6

第一个建议的方法出现了一个奇怪的错误

setSelectedItem(T) 在 SelectionModel 中具有受保护的访问权限,其中 T 是类型变量: T extends Object 在类 SelectionModel 中声明

为了我

getSelectionModel().select("NVT");

像魅力一样工作。

于 2012-08-30T15:21:55.727 回答