加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使动态的JTable单元格可编辑/非编辑?

发布时间:2020-12-14 17:41:11 所属栏目:Java 来源:网络整理
导读:有没有办法在jtable中动态制作不可编辑的单元格?每当用户给出输入像false,我想要使不可编辑的单元格…我已经看到在DefaultTableModel isCellEditable方法.但如果我想使用,我已经创建每一次新的对象.所以我想改变它不可动态编辑.你能帮助我吗?谢谢 解决方法
有没有办法在jtable中动态制作不可编辑的单元格?每当用户给出输入像false,我想要使不可编辑的单元格…我已经看到在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()函数.理论上.我没有测试这个代码,但它应该工作.您可能仍然需要触发某种事件来触发表格以注意到这些更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读