【问题标题】:Values not showing on JavaFX combo boxJavaFX 组合框上未显示的值
【发布时间】:2016-05-03 05:58:07
【问题描述】:

我在下面有这段代码,用于在 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);

【问题讨论】:

    标签: java javafx combobox


    【解决方案1】:

    这个 sn-p 没有实际问题,它正在工作,所以请确保 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 中的项目列表也将被删除。

    【讨论】:

    • 顺便提一下:我遇到了同样的问题,因为我在 FXML 文件的 initialize() 方法中将 ComboBox 设置为 new ComboBox()。我通过删除该语句来修复它。 (FXML 会自动创建所有需要的对象。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2016-09-11
    • 2012-08-05
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多