В моем проекте я использую TreeTableView из JavaFX для отображения некоторых объектов типа BillingTableRow. Я реализовал редактор ячеек, но когда я пытаюсь установить событие onEditCommit, мне не удается сопоставить типы содержимого.
Вот мой код для одного из столбцов, хранящих имена типа String внутри объекта типа BillingTableRow:
// Name column
Callback<TreeTableColumn<BillingTableRow, String>, TreeTableCell<BillingTableRow, String>> nameCallback = new Callback<TreeTableColumn<BillingTableRow, String>, TreeTableCell<BillingTableRow, String>>() {
@Override
public TreeTableCell<BillingTableRow, String> call(TreeTableColumn<BillingTableRow, String> p) {
return new TextFieldTreeTableCell<BillingTableRow, String>();
}
};
nameColumn.setCellFactory(nameCallback);
nameColumn.setOnEditCommit(new EventHandler<CellEditEvent<BillingTableRow, String>>() {
@Override
public void handle(CellEditEvent<BillingTableRow, String> t) {
((BillingTableRow) t.getTableView().getItems().get(t.getTablePosition().getRow())).setName(t.getNewValue());
}
});
Может кто-нибудь подскажет, что не так? Я получаю следующую ошибку в Eclipse:
Метод setOnEditCommit (EventHandler ‹TreeTableColumn.CellEditEvent>) в типе TreeTableColumn не применим для аргументов (новый EventHandler‹ TableColumn.CellEditEvent ‹BillingTableRow, String >> () {})
Я ценю любую помощь с моей проблемой.