使这些单元个不能编辑,但鼠标还是可以点上,既有焦点。//重载isCellEditable可编辑
import javax.swing.table.*;public class CHReadOnlyTableModel extends DefaultTableModel { int[] editableColumns;
public CHReadOnlyTableModel() {
} public void setEditableColumns(int[] arrColumn)
{
int n = arrColumn.length;
editableColumns = new int[n];
for (int i = 0 ;i < n;i++)
{
editableColumns[i] = arrColumn[i];
}
} public boolean isCellEditable(int row, int col)
{
if (editableColumns !=null)
{
int n = editableColumns.length;
boolean retValue = false;
if (n > 0)
{
for (int i = 0;i < n;i++)
{
if (col == editableColumns[i])
{
retValue = true;
break;
}
}
}
return retValue;
}
else return false;
}}
import javax.swing.table.*;public class CHReadOnlyTableModel extends DefaultTableModel { int[] editableColumns;
public CHReadOnlyTableModel() {
} public void setEditableColumns(int[] arrColumn)
{
int n = arrColumn.length;
editableColumns = new int[n];
for (int i = 0 ;i < n;i++)
{
editableColumns[i] = arrColumn[i];
}
} public boolean isCellEditable(int row, int col)
{
if (editableColumns !=null)
{
int n = editableColumns.length;
boolean retValue = false;
if (n > 0)
{
for (int i = 0;i < n;i++)
{
if (col == editableColumns[i])
{
retValue = true;
break;
}
}
}
return retValue;
}
else return false;
}}
不知道 DefaultTableModel 有没有直接的 setXXX 方法先谢了!
没办法,只能这样了
table = new JTable(model = new DefaultTableModel(data,colname) {
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
});