JTable怎样控制某一列、某一单元格允许或不允许被编辑

8 篇文章 0 订阅
8 篇文章 0 订阅

网上有很多关于怎样实现JTable不能被编辑的文章,因为如果不设置的话,双击单元格就会将单元格的内容读入一个默认的编辑器里,很多时候我们并不希望这样的事情发生,所以必须do something来阻止它。呵呵,好吧,我承认大家都知道下面这种方法可以实现让整个表格不不允许被编辑

DefaultTableModel newTableModel = new DefaultTableModel(dataVector,columnModelVector){
            @Override
            public boolean isCellEditable(int row,int column){
                return false;
            }
        };
没什么神秘的,就是重写DefaultTableModel的方法isCellEditable方法,但更多的情况下,我们是需要指定表格中某一列或若干列允许被编辑,如商品列表中的数量,价格等等,这样又如何去实现呢?

    其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格的行和列索引,所以,根据这个row和column来控制返回true或false,我们的愿望就能实现了。下面是几个例子,要学会举一反三噢:

1、只允许表格的第三列被编辑

public boolean isCellEditable(int row,int column){
    if(column == 3){
       return true;
    }else{
       return false;
    }
}
2、只允许表格的第二行、第二列的单元格被编辑

 public boolean isCellEditable(int row,int column){
   if(row == 2 && column == 2){
       return true;
   }else{
       return false;
   }
}
3、只允许表格的第4行和第6被编辑

public boolean isCellEditable(int row,int column){
   if(row == 4 || row == 6){
       return true;
   }else{
       return false;
   }
}



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值