java - 在动态 TableView 中编辑单元格值?

标签 java javafx tableview edit

是否可以在动态 TableView(动态行和动态列)中编辑单元格值?

我在互联网上找到的只是单元格上的一些可编辑文本字段。
但是,我想编辑表中的值,然后使用新数据更新我的列表。

我正在使用 IntelliJ IDEA 13.1.4、JavaFX Scene Builder 2.0 和最新的 JavaFX 版本。

这是代码,我在其中创建动态行和列:

public List<String[]> jdata = new LinkedList<>(); //Here is the data
private TableView<String[]> sourceTable;
private ObservableList<String[]> srcData;
.
.
.

int clms;
    
    public void showTable(Convert cnv) {
        clms = cnv.getColums(); //number of the columns

        for (int i = 0; i < clms; i++) {
            TableColumn<String[], String> firstNameCol = new TableColumn<>("\tC"+(i+1)+" \t");
            firstNameCol.setMinWidth(20);
            int index = i ;
            firstNameCol.setCellValueFactory(cellData -> {
                String[] rowData = cellData.getValue();
                if (index >= rowData.length) {
                    return new ReadOnlyStringWrapper("");
                } else {
                    String cellValue = rowData[index];
                    return new ReadOnlyStringWrapper(cellValue);
                }
            });
            sourceTable.getColumns().add(firstNameCol);
        }
        srcData = FXCollections.observableList(jdata);
        sourceTable.getItems().addAll(srcData);
    }

最佳答案

就这么做

firstNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
firstNameCol.setOnEditCommit(event -> {
    String[] row = event.getRowValue();
    row[index] = event.getNewValue();
});

关于java - 在动态 TableView 中编辑单元格值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31402036/

相关文章:

java - 即使没有可用的 SessionFactory 实例,Spring @Autowired 如何绑定(bind) SessionFactory 对象

java - 如何加快 mongodb 测试速度?

sql - 有没有办法在 ListView 中将表的两列显示为两行?

ios - RestKit 0.20 嵌套对象映射问题使用 API

iphone - 滚动时 UITableView 未正确更新

JavaFx 2.x TableView 绑定(bind)列

java - 为什么我无法通过 setOnClickListener 从程序中获取任何其他输出?

java - 优化 GC 运行时间

css - 从 JavaFX 中删除所有焦点边框

JavaFX 更改标签文本