我有一个 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 直接获取业务对象中的信息,而不是将所有信息从业务对象复制到 Vectors。
选择 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;}
}};