9

有很多教程,还有很多建议通过扩展 JavaFX 单元以使其可编辑来实现这一点。一个很好的问题是这个 stackoverflow 问题
但是官方教程使用方法调用来创建回调,而无需编写所有代码,通过调用

lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());

但是,当我在我的代码中执行此操作时(FormTokens 是我的“模型”):

// At beginning of class declaration
@FXML private TableColumn<FormTokens, String> valuColumn;

// Later at initialization
valuColumn.setCellFactory(TextFieldTableCell.forTableColumn());

编译器说:

Callback<TableColumn<FormTokens,String>,TableCell<FormTokens,String>>)
类型中的方法 setCellFactory( TableColumn<FormTokens,String>
不适用于参数
(Callback<TableColumn<Object,String>,TableCell<Object,String>>)

如果我删除上面提到的方法调用,除了 TableView 单元格不可编辑之外,一切正常。我究竟做错了什么?

编辑:我刚刚发现这个:Javafx TableView 无法编辑但是没有解决方案。我该如何Callback<TableColumn<Object,...投到Callback<TableColumn<FormTokens,...

4

1 回答 1

16

明确指定泛型参数的确切类型为

valuColumn.setCellFactory(TextFieldTableCell.<FormTokens>forTableColumn());
于 2013-10-12T15:22:42.083 回答