为 Vaadin ListBox 选择显示字段

Selecting display field for Vaadin ListBox

我正在用来自 MySQL 来源的实体列表填充列表框。 我看不出如何告诉它哪个字段用作它的 ID,哪个字段用作它的显示。

对于 ComboBox,我可以使用 setItemLabelGenerator 来告诉它要使用哪个字段进行显示,但我看不到 ListBox 的等效项。

ListBox<MyEntitySource> entityListBox = new ListBox<MyEntitySource>();
List<MyEntitySource> entitySource = (List<MyEntitySource>) entityRepository.findAll();
entityListBox.setItems(entitySource);

这最终显示为: MyEntity{id=1, description=项目 1}

如何告诉它以字段“id”保存 ID 并将值显示为字段“description”?

您需要为项目应用渲染器,例如:

entityListBox.setRenderer(new TextRenderer<>(entity -> entity.getDescription()));