Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-JTable-将单元格设置为不允许编辑_Java_Arrays_Swing_Jtable_Defaulttablemodel - Fatal编程技术网

Java-JTable-将单元格设置为不允许编辑

Java-JTable-将单元格设置为不允许编辑,java,arrays,swing,jtable,defaulttablemodel,Java,Arrays,Swing,Jtable,Defaulttablemodel,我有一个JTable,其模型实例化为: TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]); 生成数组的位置。但是,目前您仍然可以编辑单元格。我怎样才能防止这种情况 谢谢 扩展JTable或DefaultTableModel,覆盖isCellEditable(int行,int列)方法,并为您不希望用户能够编辑的单元格返回false 例如,如果您不希望用户能够修改第2列,则可以执行以下操作: @Override

我有一个JTable,其模型实例化为:

TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
生成数组的位置。但是,目前您仍然可以编辑单元格。我怎样才能防止这种情况


谢谢

扩展JTable或DefaultTableModel,覆盖
isCellEditable(int行,int列)
方法,并为您不希望用户能够编辑的单元格返回false

例如,如果您不希望用户能够修改第2列,则可以执行以下操作:

@Override
public boolean isCellEditable(int row, int column) {
   if (column == 1) {
      return false;
   }  else {
      return true;
   }
}
请注意,根据mre的意见,上述方法可以压缩并重新编写为:

@Override
public boolean isCellEditable(int row, int column) {
   return (column != 1);
}
如果您不希望用户能够编辑任何单元格,只需让此方法始终返回false即可:

// anonymous inner class example
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]) {
    @Override
    public boolean isCellEditable(int row, int column) {
       return false;
    }
};

子类化或创建一个匿名版本的
DefaultTableModel
并重写该方法。

在第一个示例中,它可以是
return!(列==1)