DefaultTableModel使单元格不可编辑JTable

Dav*_*ave 3 java swing overriding jtable defaulttablemodel

我有一个JAVA项目,并希望使用DefaultTableModel使我的JTable不可编辑.我知道一个解决方法,称为:

JTable table = new JTable(...){  
  public boolean isCellEditable(int row, int column){  
    return false;  
  }  
};  
Run Code Online (Sandbox Code Playgroud)

喜欢说:我不喜欢这个.这不符合我学校的训练规则.

有没有办法做到这一点?也许有一个好方法.希望如此!

JB *_*zet 10

你不应该将JTable本身子类化,而是表模型:

DefaultTableModel myModel = new DefaultTableModel(...) {
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者更好的是,不要使用DefaultTableModel,并使用直接获取业务对象信息的AbstractTableModel,而不是将业务对象中的所有信息复制到Vectors.