如何在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?
答案 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");