可编辑的ComboBox FXML默认值

时间:2015-01-29 11:13:50

标签: combobox javafx

如何在JavaFx fxml上为ComboBox设置默认值。

我在这里发现了一些问题: https://stackoverflow.com/a/14436371/1344424

<ComboBox editable="true">
    <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>

但是当Editable属性设置为true时它无效。 如何将默认值设置为可编辑的ComboBox?

2 个答案:

答案 0 :(得分:3)

如果您通过属性而不是元素设置值,它似乎有效:

<ComboBox editable="true" value="NVT">
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:value="NVT" />
            <String fx:value="Bezig" />
            <String fx:value="Positief" />
            <String fx:value="Negatief" />
        </FXCollections>
    </items>

</ComboBox>

如果您传入对同一字符串的引用,它也会以这种方式工作:

<ComboBox editable="true" value="$defaultSelection">
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:id="defaultSelection" fx:value="NVT" />
            <String fx:value="Bezig" />
            <String fx:value="Positief" />
            <String fx:value="Negatief" />
        </FXCollections>
    </items>

</ComboBox>

答案 1 :(得分:1)

我担心这对FXML来说是不可能的,但是在Java代码中:

ComboBox<String> combobox = new ComboBox<>(FXCollections.observableArrayList("1","2","3","4","5"));
combobox.setEditable(true);
combobox.getSelectionModel().selectFirst();

或者,如果您想选择特定值:

combobox.getSelectionModel().select("3");