ChoiceBox没有在JavaFX中设置ObservableList

时间:2016-01-21 08:48:12

标签: java javafx

我的JavaFx应用程序中有一个名为choiceBoxPizza的ChoiceBox。

在我的控制器中,我声明:

@FXML 
private ChoiceBox choiceBoxPizza;

我的包含一些测试数据的函数是:

private void fillChoiceBoxPizza(){
    try {
        List<String> list = new ArrayList<String>();
        list.add("Pizza A");
        list.add("Pizza B");
        list.add("Pizza C");
        ObservableList obList = FXCollections.observableList(list);
        choiceBoxPizza = new ChoiceBox<>(obList);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        System.out.println(e.toString());
    }

}

所以应填写list。奇怪的是,我没有得到任何异常,而且在方法调用之后,choiceBox仍然是空的。

我的逻辑是否存在错误?

1 个答案:

答案 0 :(得分:3)

替换此行:

choiceBoxPizza = new ChoiceBox<>(obList);

有了这个,它应该有效:

choiceBoxPizza.setItems(obList)

您不应初始化已在.fxml文件中声明的元素。 Here是关于JavaFX中的初始化过程如何工作的更广泛的解释。

希望这有帮助