如何在Java8中正确地使JavaFXTableView可编辑?

如何在Java8中正确地使JavaFXTableView可编辑?,java,javafx,Java,Javafx,我希望用户能够在Java TableView中编辑包含字符串的单元格。 在我的控制器中,我有简单的: // At beginning of class declaration @FXML private TableColumn<FormTokens, String> valuColumn; // Later at initialization valuColumn.setCellFactory(TextFieldTableCell.forTableColumn()); 尝试执行以

我希望用户能够在Java TableView中编辑包含字符串的单元格。 在我的控制器中,我有简单的:

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

// Later at initialization
valuColumn.setCellFactory(TextFieldTableCell.forTableColumn());
尝试执行以下操作时:

valuColumn.setCellValueFactory(TextFieldTableCell.<FormTokens>forTableColumn());
我得到一个:

Error:(409, 95) java: incompatible types: javafx.util.Callback<javafx.scene.control.TableColumn<sample.FormTokens,java.lang.String>,javafx.scene.control.TableCell<sample.FormTokens,java.lang.String>> cannot be converted to javafx.util.Callback<javafx.scene.control.TableColumn.CellDataFeatures<sample.FormTokens,java.lang.String>,javafx.beans.value.ObservableValue<java.lang.String>>

正确的方法是什么,用户可以单击/双击单元格并修改内容?

是否确定您正在调用setCellFactory…,而不是setCellValueFactory…?

完成编辑是否会提交编辑?或者需要额外的事件处理程序?IIRC要完成TextFieldTableCell实现中的编辑,用户必须按enter键。此时数据发生的变化在某种程度上取决于模型类FormTokens的设置方式。