网上有许多关于奈何实现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; } }
From:csdn博客 风柏杨