2012-10-11 130 views
3

我有一个JAVA项目,并希望使我的JTable与DefaultTableModel不可编辑。我知道一个解决办法,这样做,所谓:DefaultTableModel使单元格不可编辑JTable

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

喜欢说:我不喜欢这个。这不符合我学校培训的规定。

有没有办法做到这一点?也许有一个好方法。但愿如此!

+0

? – RNJ

+0

学校表示,它不会被视为像给出的代码。 – Dave

+0

有没有另一种方法来使这项工作? – Dave

回答

10

你不应该继承JTable的本身,而是表型号:

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

甚至更​​好,不要用一个DefaultTableModel,并使用直接获取你的业务对象的信息,而不是一个AbstractTableModel上将业务对象中的所有信息复制到矢量中。

+0

谢谢,这个作品4我! – Dave

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;} 
     }}; 
相关问题