gpt4 book ai didi

java - 如何使 JTable 单元格动态可编辑/不可编辑?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:08:49 26 4
gpt4 key购买 nike

有没有办法在 jtable 中动态制作不可编辑的单元格?每当用户输入错误时,我想制作不可编辑的单元格......我在 DefaultTableModel isCellEditable 方法中看到过。但是如果我想使用它,我每次都创建新对象。所以我想动态地更改它不可编辑。有人能帮帮我吗?...谢谢

最佳答案

public class MyDefaultTableModel extends DefaultTableModel {
private boolean[][] editable_cells; // 2d array to represent rows and columns

private MyDefaultTableModel(int rows, int cols) { // constructor
super(rows, cols);
this.editable_cells = new boolean[rows][cols];
}

@Override
public boolean isCellEditable(int row, int column) { // custom isCellEditable function
return this.editable_cells[row][column];
}

public void setCellEditable(int row, int col, boolean value) {
this.editable_cells[row][col] = value; // set cell true/false
this.fireTableCellUpdated(row, col);
}
}

其他类

... stuff
DefaultTableModel myModel = new MyDefaultTableModel(x, y);
table.setModel(myModel);
... stuff

然后,您可以使用已存储的 myModel 变量并对其调用 setCellEditable() 函数来动态设置值。理论上。我没有测试过这段代码,但它应该可以工作。您可能仍然需要触发某种事件来触发表以注意到更改。

关于java - 如何使 JTable 单元格动态可编辑/不可编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com