ComboBox FXML default value

我的梦境 提交于 2019-12-31 12:42:27

问题


How can I set a default value in a ComboBox using 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>

I want NVT to be selected by default. I tried adding selected="selected" and such but don't seem to find the right syntax.

Is it possible to edit the listed items using Scene Builder? I can't seem to find it.


回答1:


Use this:

<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>



回答2:


I don't think it's possible in the FXML. You will need to do it in the initialization of the component, in the controller, for example using the following line cbo_Bacteriologie_Aesculine.getSelectionModel().setSelectedIndex(1); for selecting the element Bezig.

But if you find a way to do it in FXML, I am interested.

EDIT : It is possible in FXML. You can see it in Guedolino's answer (https://stackoverflow.com/a/14436371/1344424), which should become the right answer to this question.




回答3:


I got a strange error with the first suggested method

setSelectedItem(T) has protected access in SelectionModel where T is a type-variable: T extends Object declared in class SelectionModel

For me

getSelectionModel().select("NVT");

worked like a charm.



来源:https://stackoverflow.com/questions/11684366/combobox-fxml-default-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!