Элементы назначаются на ComboBox
либо напрямую с помощью setItems
, либо косвенно через setDataProvider
.
Сам элемент не отправляется в браузер и отображается в раскрывающемся списке.Вместо этого для каждого элемента ComboBox
генерируется строковая метка, которая отображается в пользовательском интерфейсе, и внутренний идентификатор, который используется на сервере для сопоставления с исходным экземпляром элемента, когда пользователь делает выбор.
сгенерированный идентификатор является внутренним для ComboBox
и не имеет внешнего значения.В частности, оно не основано на каком-либо значении самого элемента, например на первичном ключе элемента в базе данных приложения.
Метка по умолчанию основана на выполнении toString()
для каждого элемента.Вы можете настроить способ создания метки, назначив обратный вызов генератора меток элементов, который получает экземпляр элемента и возвращает строку метки для использования с этим элементом.
Если у вас, например, есть поле со списком для выбора людей, тогдавы можете настроить его, например, так:
ComboBox<Person> personSelector = new ComboBox<>();
personSelector.setItems(allPersons);
personSelector.setItemLabelGenerator(person ->
person.getFirstName() + " " + person.getLastName());