我正在做一个项目,我必须使用来自用户之前存储在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());
}
我很感激任何答案。如果我忘记了一些重要信息,请提前感谢索拉。
答案 0 :(得分:0)
您正在创建新的ComboBox
并填充它。 ComboBox
不是您的场景图的一部分,因此您看不到填充它的结果。
假设@FXML
注入设置正确,您应该可以删除该行
loggedOnUsersDropDown = new ComboBox<String>();
它会正常工作。