2017-06-05 4 views
1

なぜ私のコンボボックスにデータが入力されないのか分かりませんが、何も動作しません。Javaコンボボックスにデータが入力されない

私のFXMLファイルで私は持っています。

私はしても表示されるまでのデータのいくつかの種類を取得しようとする

public ObservableList<String> pizzas1 = FXCollections.observableArrayList("1","2","3","4"); 

で試してみましたが、何も動いていないようで

public class ServeController { 
public ObservableList<String> pizzas1 = FXCollections.observableArrayList(); 
@FXML public ComboBox<String> comboBox; 
private void initialize() { 
comboBox.getItems().addAll(
     "[email protected]", 
     "[email protected]", 
     "[email protected]", 
     "[email protected]", 
     "[email protected]" 
    ); 
} 

を以下している私のコントローラで

<ComboBox fx:id="comboBox" layoutX="162.0" layoutY="15.0" prefHeight="25.0" prefWidth="334.0" promptText="Select past popular pizza" /> 

+0

FXMLに(fx:controller属性で)コントローラを指定していますか? –

+0

はいいいえ Dan

+0

' private void initialize()の前に '@ FXML'を追加してください。 – c0der

答えて

2

私はあなたが "標準"の方法でコントローラを稼働させていると仮定します。私は、private void initialize()メソッドが呼び出されないと推測しています。 ServeControllerにはInitializableインターフェイスが実装されていません。正しいコードは以下のようになります。

public class ServeController implements Initializable { 

    public ObservableList<String> pizzas1 = FXCollections.observableArrayList(); 

    @FXML 
    public ComboBox<String> comboBox; 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     comboBox.getItems().addAll(
       "[email protected]", 
       "[email protected]", 
       "[email protected]", 
       "[email protected]", 
       "[email protected]" 
     ); 
    } 
} 
+0

' Initializable'を実装する必要はありません。唯一の問題は 'public '以外の可視性を持つメンバは' @FXML'で注釈を付けない限り、 'FXMLLoader'には見えないことです。 ([c0derの答えを見る](https://stackoverflow.com/a/44364430/2991525)) – fabian

2

私はあなたがinitialize()にプリントアウトを追加する場合は、それが呼び出されていないことがわかりますことを前提としています。
initialize()を呼び出すには、注釈を付ける必要があります。@FXML private void initialize()

関連する問題