有很多教程,並通過擴展JavaFX單元以使它們可編輯來實現此目的很多建議。一個好的是this stackoverflow question。
但official tutorials使用方法調用,而無需編寫所有的代碼來創建回調,通過調用如何使JavaFX TableView單元格可編輯?
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,...
?