2013-08-15 8 views
9

J'ai la FXML suivante:JavaFX et FXML: comment définir l'élément sélectionné par défaut dans un ChoiceBox en FXML?

<ChoiceBox> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="2 minutes" /> 
      <String fx:value="5 minutes" /> 
      <String fx:value="15 minutes" /> 
     </FXCollections> 
    </items> 
</ChoiceBox> 

Mais dans l'interface graphique, il montre juste un ChoiceBox avec un défaut de rien. Je voudrais que le premier élément de la liste soit la valeur par défaut, et pour un choix de "null" ou rien à interdire.

Comment accomplir ceci?

Répondre

11

J'ai ajouté l'attribut de valeur à la balise ChoiceBox et cela a fonctionné.

<ChoiceBox value="2 minutes"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="2 minutes" /> 
      <String fx:value="5 minutes" /> 
      <String fx:value="15 minutes" /> 
     </FXCollections> 
    </items> 
</ChoiceBox> 
+0

au nom d'éviter les valeurs de chaîne codées en dur, est-il un moyen que je peux référencer un champ ou une méthode sur le contrôleur pour obtenir cette valeur? Je ne peux pas utiliser fx: constant car il ne cherche que les champs de la classe String, et je ne peux pas (vraiment) utiliser la syntaxe de liaison car cela laisserait la propriété liée. – Groostav

0

D'abord, vous devez importer votre modèle de valeur nécessaire, comme réponse Crowell, vous devez importer comme dans votre tête de FXML:

<?import javafx.collections.*?> 

Deuxièmement, si vous voulez Importons votre propre modèle, importer d'abord, puis comme ceci:

<?import com.zzg.mybatis.generator.model.*?> 
.... 

<ChoiceBox layoutX="24.0" layoutY="14.0" prefWidth="150.0"> 
     <items> 
      <FXCollections fx:factory="observableArrayList"> 
        <DatabaseDTO name="MySQL" value="1"></DatabaseDTO> 
        <DatabaseDTO name="Oracle" value="2"></DatabaseDTO> 
      </FXCollections> 
     </items> 
</ChoiceBox> 
+0

Cela ne répond pas à la question du tout! La question était de savoir comment définir une valeur par défaut et non comment importer et inclure des modèles personnalisés de n'importe quel type. – geisterfurz007

Questions connexes