有很多教程和很多建议,可以通过扩展 JavaFX 单元使其可编辑来实现此目的。好的一个是这个计算器问题 https://stackoverflow.com/questions/7880494/tableview-better-editing-through-binding/7884249#7884249.
但是官方教程 http://docs.oracle.com/javafx/2/ui_controls/table-view.htm#CJAGDAHE使用方法调用来创建回调,而无需编写所有代码,通过调用
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>>)
在类型中TableColumn<FormTokens,String>
不适用于参数
(Callback<TableColumn<Object,String>,TableCell<Object,String>>)
如果我删除上面提到的方法调用,除了 TableView 单元格不可编辑之外,一切都会正常运行。我究竟做错了什么?
编辑:我刚刚发现这个:Javafx TableView 无法编辑 https://stackoverflow.com/questions/12895517/javafx-tableview-can-not-be-edited但没有解决办法。我该如何投射Callback<TableColumn<Object,...
to Callback<TableColumn<FormTokens,...
?