我的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仍然是空的。
我的逻辑是否存在错误?
答案 0 :(得分:3)
替换此行:
choiceBoxPizza = new ChoiceBox<>(obList);
有了这个,它应该有效:
choiceBoxPizza.setItems(obList)
您不应初始化已在.fxml
文件中声明的元素。 Here是关于JavaFX中的初始化过程如何工作的更广泛的解释。
希望这有帮助