У меня есть ComboBox, который я заполняю значениями объекта Sheet.JavaFX ComboBox - другой текст, отображаемый после выбора
Я установил фабрику ячеек, чтобы отобразить имя листа в выпадающем списке. Он работает правильно (кажется, так).
Проблема заключается в том, что после выбора элемента («Ячейка») значение, отображаемое в поле, не является значением, которое было показано в списке.
Это соответствующая часть кода:
excelFile = new ExcelFile(file);
//ObservableList<String> sheets = FXCollections.observableArrayList(excelFile.getSheetsNames());
ObservableList<Sheet> sheets = FXCollections.observableArrayList(excelFile.getSheets());
sheetsBox.setItems(sheets);
sheetsBox.setDisable(false);
sheetsBox.setCellFactory(new Callback<ListView<Sheet>, ListCell<Sheet>>() {
@Override
public ListCell<Sheet> call(ListView<Sheet> param) {
return new ListCell<Sheet>() {
@Override
protected void updateItem(Sheet item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
setGraphic(null);
} else {
setText(item.getSheetName());
}
}
};
}
});
Это проблема (визуально): Спасибо
Спасибо. Странно, что setButtonCell обычно не упоминается в примерах setCellFactory. –