Java-JTable-将单元格设置为不允许编辑
我有一个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
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)代码>