ComboBoxTableCell JavaFX

时间:2017-07-28 09:43:58

标签: java javafx

我有类似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对象的自己的值。

1 个答案:

答案 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(); } });