我的JavaFx应用程序中有一个ChoiceBox,名为choiceBoxPizza。
在我的控制器中,我声明了:
@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在方法调用之后仍然为空。我的逻辑有误吗?
最佳答案
替换此行:
choiceBoxPizza = new ChoiceBox<>(obList);
与此,它应该工作:
choiceBoxPizza.setItems(obList)
您不应该初始化
.fxml
文件中已经声明的元素。 Here是有关JavaFX中初始化过程如何工作的更广泛的解释。希望这可以帮助