2012-07-27 21 views
16

¿Cómo puedo establecer un valor predeterminado en ComboBox usando FXML?Valor predeterminado de ComboBox 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> 

Deseo NVT para ser seleccionado de forma predeterminada. Traté de agregar selected="selected" y tal pero parece que no encuentro la sintaxis correcta.

¿Es posible editar los elementos enumerados con Scene Builder? Parece que no puedo encontrarlo.

Respuesta

37

Utilice esta:

<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

'' funciona también y se ve más limpio. – T3rm1

+0

Da 'javafx.fxml.LoadException: String no es un tipo válido. – Bopsi

+0

@BappadityaSasmal usted necesita importar la clase String. '' – UnKnown

8

No creo que sea posible en el FXML. Tendrá que hacerlo en la inicialización del componente, en el controlador, por ejemplo, utilizando la siguiente línea cbo_Bacteriologie_Aesculine.getSelectionModel().setSelectedIndex(1); para seleccionar el elemento Bezig.

Pero si encuentra una forma de hacerlo en FXML, estoy interesado.

EDITAR: Es posible en FXML. Puede verlo en la respuesta de Guedolino (https://stackoverflow.com/a/14436371/1344424), que debería convertirse en la respuesta correcta a esta pregunta.

+1

autorización que utiliza el siguiente código de 'cbo_Bacteriologie_Aesculine.getSelectionModel() selectFirst();' y lo hace el truco.. Espero que haya soporte para manejar esto en FXML :) – Perneel

6

tengo un extraño error con el primer método sugerido

setSelectedItem (T) ha protegido el acceso en SelectionModel donde T es un tipo variable: T se extiende objeto declarado en SelectionModel clase

Para mí

getSelectionModel().select("NVT"); 

funcionó de maravilla.

Cuestiones relacionadas