web-dev-qa-db-fra.com

Combobox FXML Valeur par défaut

Comment puis-je définir une valeur par défaut dans un ComboBox à l'aide de 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>

Je veux NVT doit être sélectionné par défaut. J'ai essayé d'ajouter selected="selected" Et tel mais ne semble pas trouver la syntaxe droite.

Est-il possible de modifier les éléments énumérés à l'aide de Scene Builder? Je n'arrive pas à le trouver.

17
Perneel

Utilisez ceci:

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

Je ne pense pas que ce soit possible dans la FXML. Vous devrez le faire dans l'initialisation du composant, dans le contrôleur, par exemple en utilisant la ligne suivante cbo_Bacteriologie_Aesculine.getSelectionModel().setSelectedIndex(1); pour la sélection de l'élément BEZIG.

Mais si vous trouvez un moyen de le faire dans FXML, je suis intéressé.

Edit: Il est possible dans FXML. Vous pouvez le voir dans la réponse de Guedolino ( https://stackoverflow.com/a/14436371/1344424 ), qui devrait devenir la bonne réponse à cette question.

8
Teocali

J'ai eu une erreur étrange avec la première méthode suggérée

sEselectedItem (t) a protégé l'accès à SelectionModel où T est une variable de type: T étend l'objet déclaré en classe SelectionModel

Pour moi

getSelectionModel().select("NVT");

travaillé comme un charme.

6
The Unfun Cat