如何让Jtable不可编辑?(

Java GUI编程,从mysql中获取的数据需要放到JTable中!如何控制JTable各行各列能被选择,但是单元格中的内容不被修改?
      昨天晚上仔细研究了一下,发现针对此问题,网上有很多回答有不当之处,估计大多是copy来copy去,自己并没有进行测试!
 
     JTable类下有一个子类:DefaultTableModel。
     DefaultTableModel类有一个方法: isCellEditable,该方法可使JTable能被选但不能被编辑。具体示例如下:
 
      static DefaultTableModel tableModel;
      static JTable jTable;
      tableModel = new DefaultTableModel(); 
      jTable=new JTable(tableModel){
             public boolean isCellEditable(int row, int column)
                  {
                             return false;}//表格不允许被编辑
                  }
      }; 
      这个代码是使整个JTable不可编辑。如果控制row和column的值,可以控制任何一个单元格可编辑或不可编辑。    
 
     网上很多回答的主要有两种错误:
1、建议直接使用JTable的方法 setEnabled(false), 例如:jTable.setEnabled(false),但是这种方法只是使jTable失效,即让jTable只能看,不能做其他任何操作。
2、在定义DefaultTableModel类时使用isCellEditable方法。
     例如:tableModel = new DefaultTableModel(){public boolean isCellEditable(int row, int column) {return false;}}; 
     其实这是错误的,虽然我刚开始也是这么认为的。
     这样使用isCellEditable没有作用,必须在定义JTable类时使用,例如正文中的正确代码!
     为什么会这样?难道JTable本身也有isCellEditable方法吗?
     请哪位朋友告诉我?谢谢啊!

你可能感兴趣的:(Java,SE)