值未在JavaFX组合框中显示

时间:2016-05-03 05:58:08

标签: java javafx combobox

我有以下代码,用于填充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);

1 个答案:

答案 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中的项目列表也将被删除。