java - DefaultTableModel 使单元格不可编辑 JTable

标签 java swing jtable overriding defaulttablemodel

<分区>

我有一个 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。

关于java - DefaultTableModel 使单元格不可编辑 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12840153/

相关文章:

java - 从文件中读取整数并将值存储到数组中

java - android中的类似功能SwingUtilities.invokeLater?

java - JTable 选择和取消选择不起作用

java - 滚动 JTree,使最后一行位于 Java 中 JScrollPane 的顶部

java - 下载 cookie 以发出新的 GET 请求

java - .classpath 文件阻止 git rebase

java - 如何在工具提示中使用jTable的隐藏列数据

java - 我如何检查是否已选择一行?

java - 如何唯一标识两个结果集是否相等?

java - 按下保存按钮时保存 Jtable 数据