2016-02-07 22 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> 

Bunu, SceneBuilder ürününe ComboBox'ım için nereye ekleyebileceğimi anlayamadığım için FXML dosyama ekledim. SceneBuilder aracılığıyla öğeler eklenebilir mi, yoksa el ile mi yapmak zorundayım?ComboBox Scene Builder ile Öğeler?

+3

Hayır, SceneBuilder bunu yapmanın hiçbir mekanizma yoktur. Genel olarak, genellikle bunları denetleyiciye eklemek daha mantıklıdır. –

+0

Ayrıca, sınırlı sayıda seçenek arasından seçim yaptığınız için, bir numara kullanmak iyi bir fikir olabilir. – fabian

cevap

7

SceneBuilder aracılığıyla açılan kutuya öğe ekleyemezsiniz. Ya FXML dosyası üzerinden yaptığınız gibi ya da aşağıda verilen kontrolör yoluyla ekleyebilirsiniz. Buna karşılık

@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

Yalnızca "Denetleyici Başlatabilir" özelliğini uygularsa – saikosen

+0

Herhangi bir güne SO üzerinde dersler koyacağım) – ycomp

+0

Aramayı öneririm: comboBox.getItems(). Clear() removeAll yerine. –

1

comment saikosen için: Denetleyici yaparsa değil kullanabileceğiniz Initializable uygulamak:

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