JavaFXTableView:了解允许TableCell编辑的结构

JavaFXTableView:了解允许TableCell编辑的结构,javafx,tableview,tablecell,Javafx,Tableview,Tablecell,我目前正在尝试将TableView作为用户输入源,并且在尝试阅读教程和类似内容时,我很难理解需要做什么才能让用户填充表 我看到的几乎每个示例都覆盖了所有内容,因为TableCell本身有一个setEdit()方法,我无法确定如何引用TableCell本身来调用该方法 然而,我很难在相反的方向上工作,而且我发现教程对正在发生的事情并没有太多的信息,只有大量的代码使一些看起来基本上简单的东西开始工作 我所需要的解决方案只需要能够更改单元格内的字符串数据,是否真的需要覆盖流程的每个步骤,只需单击单元格

我目前正在尝试将TableView作为用户输入源,并且在尝试阅读教程和类似内容时,我很难理解需要做什么才能让用户填充表

我看到的几乎每个示例都覆盖了所有内容,因为TableCell本身有一个setEdit()方法,我无法确定如何引用TableCell本身来调用该方法

然而,我很难在相反的方向上工作,而且我发现教程对正在发生的事情并没有太多的信息,只有大量的代码使一些看起来基本上简单的东西开始工作

我所需要的解决方案只需要能够更改单元格内的字符串数据,是否真的需要覆盖流程的每个步骤,只需单击单元格,将其切换到可编辑状态,获取字符串,然后返回到带有文本的标签作为字符串输入


另外,如果有什么不同的话,我是通过FXML来实现的。

问题源于场景生成器将表格列默认为不可编辑,尽管表格是可编辑的

爪哇

FXML



无法满足您的需求?理论上,它会购买如何使表由这些标签而不是标签构建?在Java中,
myTableColumn.setCellFactory(TextFieldTableCell.forTableColumn())。在FXML中(我从未尝试过这种方法)
我知道必须有一个简单的解决方案,为什么所有教程都至少有100行代码?我寻找这个解决方案已经有一周了。works,场景构建的输出有问题吗?您在这里的解释没有真正意义<默认情况下,code>TableColumn
s是可编辑的,并且您不会显示任何更改
editable
属性的代码。您需要的是在该列中使用支持编辑的
TableCell
s,这是您的代码实现的功能。在我的代码中,默认情况下它们不可编辑,在FXML中它们显式为false。因此,您应该说SceneBuilder将表列的可编辑性显式设置为false(老实说,这很奇怪,但GUI构建器工具通常会在很多时候做一些奇怪的事情)。
myTableColumn.setCellFactory(TextFieldTableCell.forTableColumn());
<TableColumn>
    <cellFactory>
        <TextFieldTableCell fx:factory="forTableColumn"/>
    </cellFactory>
</TableColumn>