我有一个JAVA项目,并希望使用DefaultTableModel使我的JTable不可编辑。我知道一个解决办法,称为:
JTable table = new JTable(...){
public boolean isCellEditable(int row, int column){
return false;
}
};
喜欢说:我不喜欢这个。这不符合我学校训练的规则。
有没有办法做到这一点?也许有一个好方法。我希望如此!
答案 0 :(得分:10)
您不应该为JTable本身创建子类,而应该是表模型:
DefaultTableModel myModel = new DefaultTableModel(...) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
}
或者更好的是,不要使用DefaultTableModel,并使用直接获取业务对象中信息的AbstractTableModel,而不是将业务对象中的所有信息复制到Vectors。
答案 1 :(得分:2)
选择Jtable,不要忘记创建表模型(DefaultTableModel TableModel)
JTable table_1 = new JTable (TableModel){public boolean isCellEditable(int row,int column)
{switch(column){
case 4: // select the cell you want make it not editable
return false;
default: return true;}
}};