我有一个模型实例化为的 JTable:
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
生成数组的位置。但是,目前,您仍然可以编辑单元格。我怎样才能防止这种情况?
谢谢!
我有一个模型实例化为的 JTable:
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
生成数组的位置。但是,目前,您仍然可以编辑单元格。我怎样才能防止这种情况?
谢谢!
扩展 JTable 或 DefaultTableModel,覆盖该isCellEditable(int row, int column)
方法,并为您不希望用户能够编辑的单元格返回 false。
例如,如果您不希望用户能够修改第二列,那么您可以执行以下操作:
@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
并覆盖该isCellEditable
方法。