2013-08-15 11 views
9

Ich habe folgendes FXML:JavaFX & FXML: Wie lege ich das standardmäßig ausgewählte Element in einer ChoiceBox in FXML fest?

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

Aber in dem GUI es zeigt nur eine Auswahlbox mit einem Standard von nichts. Ich möchte das erste Element in der Liste als Standard und für eine Auswahl von "null" oder nichts, das verboten werden soll.

Wie bewerkstellige ich das?

Antwort

11

Ich habe das Value-Attribut zum ChoiceBox-Tag hinzugefügt, und das hat funktioniert.

<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

im Namen der Vermeidung hartcodierter String-Werte, gibt es eine Möglichkeit, ich kann ein Feld oder eine Methode auf dem Controller, um diesen Wert zu erhalten? Ich kann fx: constant nicht verwenden, weil es nur nach Feldern in der String-Klasse sucht, und ich kann (wirklich) die Bindesyntax nicht verwenden, da dies die Eigenschaft gebunden zurücklassen würde. – Groostav

0

Zunächst sollten Sie Ihren gewünschten Wert Modell importieren, wie Crowell Antwort, sollten Sie wie dies in Ihrem fxml Header importieren:

<?import javafx.collections.*?> 

Zweitens, wenn Sie das wollen Ihr eigenes Modell importieren, importieren zuerst und dann wie folgt:

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

Das beantwortet die Frage überhaupt nicht! Die Frage war, wie Sie einen Standardwert festlegen und nicht, wie Sie benutzerdefinierte Modelle importieren und einschließen. – geisterfurz007

Verwandte Themen