我有类似LocalList的ArrayList
public class Item {
private ArrayList<LocalDate> dates;
}
另一个类中的TableColumn
ObservableList<Item> itemObservableList = FXCollections.observableArrayList();
TableColumn<Item, LocalDate> datesColumn = new TableColumn<>("Dates");
datesColumn.setCellFactory(param -> new ComboBoxTableCell<>());
我想到如何为这个列设置一个cellValueFactory,现在我希望ComboBoxTableCell具有来自Item类对象的值。因此,每个ComboBox都应该拥有基于Item对象的自己的值。
答案 0 :(得分:1)
您可以@Override ComboBoxTableCell
的{{1}}方法,如下所示:
startEdit()
因此,您的组合框中的日期将包含每个具有项目日期的行。您可以为其定义datesColumn.setCellFactory(param -> new ComboBoxTableCell<Item,LocalDate>(){
@Override public void startEdit() {
Item item = (Item)getTableRow().getItem();
getItems().setAll(item.getDates());
super.startEdit();
}
});
。