DefaultTableModel使单元格不可编辑在JTable中。

3

我有一个JAVA项目,想要用DefaultTableModel使我的JTable不可编辑。我知道一种可以解决这个问题的方法,叫做:

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

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

有没有什么方法可以做到这一点?也许有一个好方法。希望如此!


你的学校培训中有哪些规则? - RNJ
学校表示,代码不应该像给定的那样。 - Dave
有没有其他方法使这个工作? - Dave
2个回答

10

您不应该直接对JTable进行子类化,而是应该对表格模型进行子类化:

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

甚至更好的做法是,不要使用DefaultTableModel,而是使用AbstractTableModel直接从业务对象中获取信息,而不是将所有信息从业务对象复制到向量中。


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;}  
        }}; 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接