mar*_*ark 3 java arrays swing jtable defaulttablemodel
我有一个JTable,模型实例化为:
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
Run Code Online (Sandbox Code Playgroud)
生成数组的位置.但是,目前,您仍然可以编辑单元格.我怎么能阻止这个?
谢谢!
扩展JTable或DefaultTableModel,覆盖该isCellEditable(int row, int column)方法,并为您不希望用户能够编辑的单元格返回false.
例如,如果您不希望用户能够修改第二列,那么您可以执行以下操作:
@Override
public boolean isCellEditable(int row, int column) {
if (column == 1) {
return false;
} else {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,根据mre的评论,上述方法可以压缩并重写为:
@Override
public boolean isCellEditable(int row, int column) {
return (column != 1);
}
Run Code Online (Sandbox Code Playgroud)
如果您不希望用户能够编辑任何单元格,那么只需让此方法始终返回false:
// anonymous inner class example
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
Run Code Online (Sandbox Code Playgroud)