网上有很多关于怎样实现JTable不能被编辑的文章,因为如果不设置的话,双击单元格就会将单元格的内容读入一个默认的编辑器里,很多时候我们并不希望这样的事情发生,所以必须do something来阻止它。呵呵,好吧,我承认大家都知道下面这种方法可以实现让整个表格不不允许被编辑
- DefaultTableModel newTableModel = new DefaultTableModel(dataVector,columnModelVector){
- @Override
- public boolean isCellEditable(int row,int column){
- return false;
- }
- };
其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格的行和列索引,所以,根据这个row和column来控制返回true或false,我们的愿望就能实现了。下面是几个例子,要学会举一反三噢:
1、只允许表格的第三列被编辑
- public boolean isCellEditable(int row,int column){
- if(column == 3){
- return true;
- }else{
- return false;
- }
- }
- public boolean isCellEditable(int row,int column){
- if(row == 2 && column == 2){
- return true;
- }else{
- return false;
- }
- }
- public boolean isCellEditable(int row,int column){
- if(row == 4 || row == 6){
- return true;
- }else{
- return false;
- }