在我的一个项目中,我使用 JavaFX 的 TreeTableView 来显示一些 BillingTableRow 类型的对象。我已经实现了一个单元格编辑器,但是当我尝试设置 onEditCommit 事件时,我无法让内容类型匹配。
这是我在 BillingTableRow 类型的对象中存储 String 类型名称的列之一的代码:
// 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 中收到以下错误:
TreeTableColumn 类型中的方法 setOnEditCommit(EventHandler< TreeTableColumn.CellEditEvent>) 不适用于参数(new EventHandler< TableColumn.CellEditEvent< BillingTableRow,String>>(){})
感谢您对我的问题的任何帮助。