2016-02-07 10 views
6
<ComboBox fx:id="schaltung" layoutX="347.0" layoutY="50.0" prefHeight="63.0" prefWidth="213.0"> 
      <items> 
       <FXCollections fx:factory="observableArrayList"> 
        <String fx:id="reihe" fx:value="Reihenschaltung" /> 
        <String fx:id="parallel" fx:value="Parallelschaltung" /> 
       </FXCollections> 
      </items> 
</ComboBox> 

Ho aggiunto questo al mio file FXML perché non riuscivo a capire dove aggiungere elementi al mio ComboBox in SceneBuilder. È possibile aggiungere elementi tramite lo SceneBuilder o devo farlo manualmente?Elementi ComboBox tramite Scene Builder?

+3

No, non esiste un meccanismo per fare questo in SceneBuilder. In generale, di solito ha più senso aggiungerli nel controller in ogni caso. –

+0

Anche se sembra che tu stia scegliendo da una serie limitata di scelte, usare l'enum potrebbe essere una buona idea. – fabian

risposta

7

Non è possibile aggiungere elementi a combobox tramite SceneBuilder. O puoi aggiungere tramite il file FXML come hai fatto tu o tramite controller come indicato di seguito.

@Override 
public void initialize(URL location, ResourceBundle resources) { 
    comboBox.getItems().removeAll(comboBox.getItems()); 
    comboBox.getItems().addAll("Option A", "Option B", "Option C"); 
    comboBox.getSelectionModel().select("Option B"); 
} 
+0

Solo quando 'Controller implementa Inizializzabile' – saikosen

+0

Prenderò COS sui tutorial ogni giorno) – ycomp

+0

Suggerisco di chiamare: comboBox.getItems(). Clear() invece di removeAll. –

1

In risposta a saikosen comment: se il controllore non non implementare Initializable è possibile utilizzare:

@FXML 
public void initialize() { 
    comboBox.getItems().removeAll(comboBox.getItems()); 
    comboBox.getItems().addAll("Option A", "Option B", "Option C"); 
    comboBox.getSelectionModel().select("Option B"); 
} 
Problemi correlati