我有一个JAVA项目,想要用DefaultTableModel使我的JTable不可编辑。我知道一种可以解决这个问题的方法,叫做:
JTable table = new JTable(...){
public boolean isCellEditable(int row, int column){
return false;
}
};
就像所说的:我不喜欢这个。这不符合我的学校培训规则。
有没有什么方法可以做到这一点?也许有一个好方法。希望如此!
我有一个JAVA项目,想要用DefaultTableModel使我的JTable不可编辑。我知道一种可以解决这个问题的方法,叫做:
JTable table = new JTable(...){
public boolean isCellEditable(int row, int column){
return false;
}
};
就像所说的:我不喜欢这个。这不符合我的学校培训规则。
有没有什么方法可以做到这一点?也许有一个好方法。希望如此!
您不应该直接对JTable进行子类化,而是应该对表格模型进行子类化:
DefaultTableModel myModel = new DefaultTableModel(...) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
}
甚至更好的做法是,不要使用DefaultTableModel,而是使用AbstractTableModel直接从业务对象中获取信息,而不是将所有信息从业务对象复制到向量中。
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;}
}};