前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JTable怎样控制某一列、某一单元格允许或不允许被编辑

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

作者头像
风柏杨4711
发布2021-03-15 10:49:00
9760
发布2021-03-15 10:49:00
举报
文章被收录于专栏:技术小牛技术小牛

网上有很多关于怎样实现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;
   }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-07-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档