我有以下代码,用于填充JavaFX ComboBox
上的值。
System.out里面是每个循环的内部打印状态名称,但是组合框上没有显示状态名称。
@FXML private ComboBox<String> cmboState = new ComboBox<String>();
ObservableList<String> stateList = FXCollections.observableArrayList();
stateList.clear();
stateService = (StateService) App.getAppContext().getBean("StateService");
List<State> states = stateService.findAllState();
cmboState.setItems(stateList);
for (State state : states) {
System.out.println(state.getStateName());
stateList.add(state.getStateName());
}
stateList.add(0, "Select one");
cmboState.setItems(stateList);
答案 0 :(得分:0)
此代码段没有实际问题,它正常运行,因此请确保stateList
未在代码中的其他位置删除。
另外,调用cmboState.setItems(stateList);
两次是没用的,因为它是ObservableList
:
cmboState.setItems(stateList); // Here stateList is empty
for (int i = 0; i<3; i++) {
stateList.add("aaa" + i);
}
stateList.add(0, "Select one");
所以我最好的猜测是你在其他地方删除此列表,因此ComboBox
中的项目列表也将被删除。