2012-07-27 21 views
16

Wie kann ich einen Standardwert in einem ComboBox mit FXML festlegen?ComboBox FXML Standardwert

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

Ich möchte NVT, die standardmäßig ausgewählt werden. Ich habe versucht, selected="selected" und so hinzuzufügen, aber scheint nicht die richtige Syntax zu finden.

Ist es möglich, die aufgelisteten Elemente mit Scene Builder zu bearbeiten? Ich kann es nicht finden.

Antwort

37

verwenden:

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

'' funktioniert auch und sieht sauberer aus. – T3rm1

+0

Gibt 'javafx.fxml.LoadException: String ist kein gültiger Typ.' – Bopsi

+0

@BappadityaSasmal müssen Sie String-Klasse importieren. '' – UnKnown

8

Ich glaube nicht, dass es in der FXML möglich ist. Sie müssen dies bei der Initialisierung der Komponente im Controller tun, zum Beispiel mit der folgenden Zeile cbo_Bacteriologie_Aesculine.getSelectionModel().setSelectedIndex(1); für die Auswahl des Elements Bezig.

Aber wenn Sie einen Weg finden, es in FXML zu tun, bin ich interessiert.

EDIT: Es ist in FXML möglich. Sie können es in Guedolinos Antwort sehen (https://stackoverflow.com/a/14436371/1344424), die die richtige Antwort auf diese Frage werden sollte.

+1

okay, habe ich den folgenden Code 'cbo_Bacteriologie_Aesculine.getSelectionModel() Select();' und es funktioniert der Trick.. Ich hoffe, dass es in FXML Unterstützung dafür geben wird :) – Perneel

6

bekam ich einen seltsamen Fehler mit dem ersten vorgeschlagenen Verfahren

setSelectedItem (T) Zugang in SelectionModel geschützt hat wobei T ein Typ-Variable ist: T erstreckt sich in der Klasse SelectionModel erklärt Objekt

Für mich

getSelectionModel().select("NVT"); 

arbeitete wie ein Charme.