只用keyReleased试试:
public void keyReleased(KeyEvent ke)
{
if (ke.isActionKey())
{
String keyMeg = "Sorry, You can not modify the data in the table!";
JOptionPane keyAct = new JOptionPane();
keyAct.showMessageDialog(gui,keyMeg);
refresh();
}}
public void keyReleased(KeyEvent ke)
{
if (ke.isActionKey())
{
String keyMeg = "Sorry, You can not modify the data in the table!";
JOptionPane keyAct = new JOptionPane();
keyAct.showMessageDialog(gui,keyMeg);
refresh();
}}
public boolean isCellEditable(int rowIndex, int columnIndex)
{
return false;
}
在用继承的类对象替换掉TTable中的TableModel对象就可以了。
public class AblTableModel extends DefaultTableModel
{
String data [][];
// String columnNames[];
int rowCount;
boolean canEditCell = false; public AblTableModel()
{
super();
} public void setData(String data[][],String columnNames[])
{
//this.data = data;
// this.columnNames = colunmNames;
super.setDataVector(data,columnNames);
} public void setData(Vector dataVector,String colNum[])
{
rowCount = dataVector.size();
data = new String[rowCount][colNum.length];
for(int i = 0; i < rowCount; i++)
{
AblDataModel dataModel = (AblDataModel)dataVector.elementAt(i);
for(int j = 0; j < colNum.length; j++)
{
data[i][j] = (String)dataModel.getMemberAt(j);
}
}
super.setDataVector(data,colNum);
// this.data = data;
}
/*public void addRow(Object row[])
{
super.addRow(row);
}*/
public void setColumnNames(String columnNames[])
{
// this.columnNames = columnNames;
super.setColumnIdentifiers(columnNames);
super.setColumnCount(columnNames.length);
} /* public void setRowCountAbl(int rowCount)
{
this.rowCount = rowCount;
super.setRowCount(rowCount);
}*/ public void setCanEditCell(boolean canEditCell)
{
this.canEditCell = canEditCell;
} public String getColumnName(int column)
{
return super.getColumnName(column);
} public int getColumnCount()
{
/**@todo: implement this javax.swing.table.AbstractTableModel abstract method*/
//return data[0].length;
return super.getColumnCount();
}
public Object getValueAt(int parm1, int parm2)
{
/**@todo: implement this javax.swing.table.AbstractTableModel abstract method*/
// if(super.getValueAt(parm1,parm2) instanceof Boolean) //{
//return (Boolean)(super.getValueAt(parm1,parm2));
//return new Boolean(true);
// }
// else
return super.getValueAt(parm1,parm2);
}
/* public int getRowCount()
{
/**@todo: implement this javax.swing.table.AbstractTableModel abstract method*/
// return this.rowCount;
// } /*public void setValueAt(String value,int row,int column)
{
data[row][column]=value; fireTableChanged(new TableModelEvent(this,row,row,column));
}*/ public boolean isCellEditable(int row,int col){return this.canEditCell;}
//public Class getColumnClass(int c){return getValueAt(0,c).getClass();}
}