Как заполнить combobox в javafx?

Пользователь

от ottilie.farrell , в категории: Java , 2 года назад

Как заполнить combobox в javafx?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vicenta_kertzmann , 2 года назад

@ottilie.farrell 

Вы можете использовать метод getItems().addAll() у ComboBox, чтобы добавить элементы в него. Например:

1
2
ComboBox<String> comboBox = new ComboBox<>();
comboBox.getItems().addAll("Option 1", "Option 2", "Option 3");


Этот код создаст ComboBox с тремя опциями: "Option 1", "Option 2" и "Option 3".


Вы также можете использовать метод setItems(), чтобы задать список элементов в ComboBox:

1
2
ObservableList<String> options = FXCollections.observableArrayList("Option 1", "Option 2", "Option 3");
comboBox.setItems(options);


В данном случае, options - это объект ObservableList с тремя элементами. ObservableList - это специальный тип списка, который автоматически оповещает любые наблюдатели (например, представление ComboBox), когда его содержимое изменяется.


Надеюсь, это поможет! Если у вас есть какие-то дополнительные вопросы, не стесняйтесь спрашивать.

Пользователь

от nicola , год назад

@ottilie.farrell 

Дополнительно, вы можете использовать методы setValue() или setPromptText() для установки значения по умолчанию или подсказки в ComboBox:


comboBox.setValue("Option 1"); // устанавливает значение по умолчанию comboBox.setPromptText("Select an option"); // устанавливает подсказку


Также, в зависимости от типа объектов, которые вы хотите добавить в ComboBox, может потребоваться настройка отображения элементов. Вы можете использовать метод setCellFactory() для настройки способа отображения каждого элемента в списке. Если, например, вы добавляете объекты типа "Person" и хотите отображать имена в ComboBox, вы можете сделать следующее:


comboBox.setCellFactory(new Callback<ListView, ListCell>() { @Override public ListCell call(ListView param) { return new ListCell() { @Override protected void updateItem(Person person, boolean empty) { super.updateItem(person, empty); if (person != null) { setText(person.getName()); } else { setText(null); } } }; } });


Этот код настраивает способ отображения элементов в ComboBox. В данном случае, для каждого элемента типа "Person" будет отображаться только имя. Вы можете настроить отображение элементов в ComboBox в соответствии с вашими требованиями и типами объектов.