有许多教程,并且通过扩展JavaFX单元以使其可编辑来实现此目的的许多建议。一个好的是this stackoverflow question 但official tutorials使用方法调用来创建回调而不编写所有代码,通过调用
lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
但是当我在我的代码中执行此操作时(FormTokens是我的“模型”):
// At beginning of class declaration
@FXML private TableColumn<FormTokens, String> valuColumn;
// Later at initialization
valuColumn.setCellFactory(TextFieldTableCell.forTableColumn());
编译说:
方法 setCellFactory(
Callback<TableColumn<FormTokens,String>,TableCell<FormTokens,String>>)
在TableColumn<FormTokens,String>
类型中
不适用于论据
(Callback<TableColumn<Object,String>,TableCell<Object,String>>)
如果我删除上面提到的方法调用,除了TableView单元格不可编辑外,一切正常。我做错了什么?
编辑:我刚刚发现:Javafx TableView can not be edited但是没有解决方案。如何将Callback<TableColumn<Object,...
投射到Callback<TableColumn<FormTokens,...
?
答案 0 :(得分:13)
为通用参数明确指定确切类型为
valuColumn.setCellFactory(TextFieldTableCell.<FormTokens>forTableColumn());