3

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

JTable table = new JTable(...){  
  public boolean isCellEditable(int row, int column){  
    return false;  
  }  
};  

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

有没有办法做到这一点?或许有什么好办法。但愿如此!

4

2 回答 2

10

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

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

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

于 2012-10-11T13:15:25.467 回答
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;}  
        }}; 
于 2013-08-15T14:36:37.700 回答