多くのチュートリアルがあり、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());
コンパイラは言う:
メソッドsetCellFactory(
Callback<TableColumn<FormTokens,String>,TableCell<FormTokens,String>>)
タイプTableColumn<FormTokens,String>
は引数には適用されません(Callback<TableColumn<Object,String>,TableCell<Object,String>>)
上記のメソッド呼び出しを削除すると、TableViewセルが編集できないことを除いて、すべてが正常に機能します。私は何が間違っているのですか?
編集:私はこれを見つけました: Javafx TableViewは編集できません しかし、解決策はありません。 Callback<TableColumn<Object,...
をCallback<TableColumn<FormTokens,...
にキャストするにはどうすればよいですか?
ジェネリックパラメータの正確なタイプを次のように明示的に指定します
valuColumn.setCellFactory(TextFieldTableCell.<FormTokens>forTableColumn());