我正在做一个项目,我必须使用用户刚存储在Hashmap中的对象的属性填充组合框。这意味着我无法提前将项目分配给组合框。这是我第一次尝试使用javaFX。到目前为止它没问题,但是当我尝试填充组合框“loggedOnUsersDropDown”时,没有任何反应。它只是空着。我创建了包含带场景构建器的ComboBox的UI。该方法的代码如下所示:无法在运行时填充JavaFX组合框
@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());
}
我将不胜感激任何答案。如果我忘记了一些重要信息,请提前致谢。
您正在创建一个新的组合框。你有没有添加新的场景图? – 2015-03-30 22:10:03
不,我不。我以为javafx正在为我处理这个问题,因为combobox是在场景构建器中创建的。感谢提示。我似乎无法将组合框添加到任何内容,例如“root.getChildren()。add(loggenOnUsersDropDown)”这一行不起作用,有关如何正确添加组合框的提示?谢谢 – Boldan 2015-03-31 08:35:56
为什么要创建一个新的组合框? – 2015-03-31 09:12:47