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

SceneBuilderのComboBoxにアイテムを追加できる場所がわからないので、これを自分のFXMLファイルに追加しました。 SceneBuilder経由でアイテムを追加することは可能ですか、それとも手動で行う必要がありますか?ComboBoxシーンビルダによるアイテム?

+3

いいえ、SceneBuilderでこれを行うためのメカニズムはありません。通常、コントローラにこれらを追加するのが一般的です。 –

+0

また、限られた選択肢から選択しているように見えますので、列挙型を使用するとよいでしょう。 – fabian

答えて

7

SceneBuilderを通じてコン​​ボボックスに項目を追加することはできません。 FXMLファイルを追加したり、以下のようにコントローラを追加したりすることができます。応答で

@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

'ControllerがInitializableを実装している時のみ' – saikosen

+0

私はいつでもチュートリアルを勉強します) – ycomp

+0

removeAllの代わりにcomboBox.getItems()。clear()を呼び出すことをお勧めします。 –

1

commentをsaikosenする:コントローラがない場合ない使用できるInitializableを実装:

@FXML 
public void initialize() { 
    comboBox.getItems().removeAll(comboBox.getItems()); 
    comboBox.getItems().addAll("Option A", "Option B", "Option C"); 
    comboBox.getSelectionModel().select("Option B"); 
} 
関連する問題