2016-09-22 14 views
0

私はプログラミングにとても慣れていないので、このような不具合を乗り越えることはできません。私はオプションが設定された選択ボックスを持っていたいと思います。 ObservableListを定義してからComboBoxを作成しようとしましたが、実際にコードを実行すると空です。この配列が表示されたら編集する必要はありません。ここに私のコードは次のとおりです。JAVAFX ComboBoxが空白

ObservableList<String> options = 
FXCollections.observableArrayList(
    "Option 1", 
    "Option 2", 
    "Option 3" 
); 

@FXML 
final ComboBox stores = new ComboBox(options); 

@FXML 
private Label label; 

私はFXid店とのシーンBuilderを使用してFXMLドキュメントにコンボボックスを作成しました。

助けていただけたら幸いです! ありがとうございます。

答えて

0

javafxコンポーネントをアノテーションで飾るときは、それを開始しないでください。これだけはOKです。

@FXML ComboBox stores; 

コントローラクラスのinitializeメソッド。このコードを追加 :

stores.setItems(options); 
+0

非常にありがとうございます! –

0

- >あなたのコードは次のようにする必要があります:

ObservableList<String> options = 
    FXCollections.observableArrayList(
     "Option 1", 
     "Option 2", 
     "Option 3" 
    ); 

    @FXML 
    final ComboBox stores ; 

    @FXML 
    private Label label; 

FXMLLoaderはあなたのためにこれを行いますFXMLコンポーネントを初期化しようとしないでください。最初にFXMLLoaderに電話して、ノードが初期化され、次に実装に基づいて2つの異なるソリューションがあります。

ソリューション1(あなたのクラスは、()exampleためInitializableを実装)

/** 
* Called after the FXML layout is loaded. 
*/ 
@Override 
public void initialize(URL url, ResourceBundle rb) { 

    //Add the ObservableList to the ComboBox 
    stores.setItems(options); 

} 

ソリューション2(あなたはFXMLコンポーネントことを知っている このメソッドは、その後、呼び出されたときに、あなたのFXMLコントローラ方法initialize()を追加初期化されました)

+0

完全に動作します、ありがとう:) –