可编辑组合框 FXML 默认值
Editable ComboBox FXML default value
有一种方法可以在 JavaFx fxml 上为 ComboBox 设置默认值。
我在这里找到了解决方案:
<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?
我担心 FXML 无法做到这一点,但在 Java 代码中:
ComboBox<String> combobox = new ComboBox<>(FXCollections.observableArrayList("1","2","3","4","5"));
combobox.setEditable(true);
combobox.getSelectionModel().selectFirst();
或者,如果您想要 select 特定值:
combobox.getSelectionModel().select("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>
有一种方法可以在 JavaFx fxml 上为 ComboBox 设置默认值。
我在这里找到了解决方案:
<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?
我担心 FXML 无法做到这一点,但在 Java 代码中:
ComboBox<String> combobox = new ComboBox<>(FXCollections.observableArrayList("1","2","3","4","5"));
combobox.setEditable(true);
combobox.getSelectionModel().selectFirst();
或者,如果您想要 select 特定值:
combobox.getSelectionModel().select("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>