Я делаю проект, где мне нужно заполнить ComboBox атрибутами из объектов, которые пользователь только что сохранил в Hashmap раньше. Это означает, что я не могу заранее назначить элементы в ComboBox. Это первый раз, когда я пытаюсь использовать javaFX. Пока это было нормально, но когда я пытаюсь заполнить ComboBox «loggedOnUsersDropDown», ничего не происходит. Он просто остается пустым. Я создал пользовательский интерфейс, включая ComboBox со сценарным застройщиком. Код метода выглядит так:Не удалось заполнить JavaFX 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());
}
Буду признателен за любой ответ. Спасибо заранее и сори, если я забуду какую-то важную информацию.
Вы создаете новый комбинированный блок. Вы когда-нибудь добавляли новый в график сцены? –
Нет, я не. Я думал, что javafx обрабатывает это для меня, поскольку combobox был создан в сцене. Спасибо за подсказку. Кажется, я не могу добавить combobox ко всему, например строку «root.getChildren(). Add (loggenOnUsersDropDown)» не работает. Есть ли какие-либо подсказки о том, как правильно добавить поле со списком? спасибо – Boldan
Зачем создавать новый комбинированный блок? –