我在做Swing开发的过程中用到JTable,在测试过程中发现鼠标双击表格的某个cell都能进入编辑状态,请问有没有办法屏蔽掉双击选中,防止表格内容被编辑?

解决方案 »

  1.   

    改写model的isCellEditable(int,int)方法,返回false.
      

  2.   

    我的代码是:
    class DefTab extends
    javax.swing.table.DefaultTableModel {

    DefTab(Vector vList,Vector tabTitle){
    super();
    int m = vList.size();
    for(int i=0; i<m; i++){
    int n = ((Vector)vList.get(i)).size();
    for(int j=0; j<n; j++){
    this.isCellEditable(i, j);
    }
    }
    }
    public boolean isCellEditable(int row,int column) {
    return false;
    } }
    但没有成功,麻烦看一下问题出在哪,谢谢!
      

  3.   

    用你写的这个DefTab 这个model作为参数来创建Jtable啊
    DefTab d = new DefTab();
    JTable table = new JTable(d);
    这样子应该就行了
      

  4.   

    我是那么做的,但测试发现cell仍然能被选中并且编辑!
      

  5.   

    //添加条件区域,如果是FALSE则不可编辑。
    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
    if (columnIndex == 0) {// 主键列不可被修改
    return false;
    }
    return true;
    }
      

  6.   

    谢谢楼上的仁兄,问题解决了,我的代码问题的原因是:super应该使用的带参的函数!