我在JavaFX中的ComboBox有问题。我从数据库中获得了一个对象列表(例如ID,名称,姓氏等结构),我想将此项目设置为组合框,但我只想显示“名称”属性。到目前为止,组合框向我显示了以下内容:“ People {id =” 1“,name =” X“,surname =” Y“} ...并到达列表的末尾(其中“ People”是列表的名称)。我也想让组合框的项目不仅获得名称,还获得整个对象,该如何解决呢?
List<ApplicationFunction> applicationFunctionList = manager.getAllApplicationFunctions().stream().map(c -> (ApplicationFunction) c).collect(toList());
ObservableList<ApplicationFunction> dataCollections = FXCollections.observableArrayList();
dataCollections.addAll(applicationFunctionList);
comboBoxFunkcja.setCellFactory(param -> new ListCell<ApplicationFunction>() {
@Override
protected void updateItem(ApplicationFunction item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null || item.getCodeName() == null) {
setText(null);
} else {
setText(item.getCodeName());
}
}
});
comboBoxFunkcja.setItems(dataCollections);
comboBoxFunkcja.getSelectionModel().selectFirst();