无法在运行时填充JavaFX ComboBox

时间:2015-03-30 21:57:49

标签: combobox javafx

我正在做一个项目,我必须使用来自用户之前存储在Hashmap中的对象的属性来填充ComboBox。这意味着我无法提前将项目分配给ComboBox。这是我第一次尝试使用javaFX。到目前为止还可以,但是当我尝试填充ComboBox" loggedOnUsersDropDown"时,没有任何反应。它只是保持空白。我创建了UI,包括带有场景构建器的ComboBox。该方法的代码如下所示:

@FXML
protected void loadLoggedOn(){
    ArrayList<String> loggedOn = new ArrayList();

    for (User LOGGED_Onkey : bd.currentSSO.LOGGED_ON.keySet()) {
        loggedOn.add(LOGGED_Onkey.getAttribute(LOGGED_Onkey.USER_NAME));          //System.out.println(LOGGED_Onkey.getAttribute(LOGGED_Onkey.USER_NAME));
    }

    ObservableList<String> obList = FXCollections.observableArrayList(loggedOn);
    //loggedOnUsersDropDown.getItems().clear();
    loggedOnUsersDropDown = new ComboBox<String>();
    loggedOnUsersDropDown.getItems().addAll(obList);
    System.out.println(loggedOn.size());
}

我很感激任何答案。如果我忘记了一些重要信息,请提前感谢索拉。

1 个答案:

答案 0 :(得分:0)

您正在创建新的ComboBox并填充它。 ComboBox不是您的场景图的一部分,因此您看不到填充它的结果。

假设@FXML注入设置正确,您应该可以删除该行

loggedOnUsersDropDown = new ComboBox<String>();

它会正常工作。