我试图覆盖DefaultTableModel类的isCellEditable方法,使我的表格单元格不可编辑。我试图通过使用匿名内部类来实现这一点,
然而表格单元格仍然是可编辑的,在尝试调试时我发现代码没有执行overriden方法,而是在实例化DefaultTableModel类之后直接调用DefaultTableModel的isCellEditable方法。为什么会这样?
答案 0 :(得分:3)
检查模型的创建位置。该表在某处初始化(其中行/列数据添加到表中)。在这个地方(现在显示在你的代码中),内部类被替换为TableModel
的另一个实例(我认为是DefaultTableModel
实例)
答案 1 :(得分:1)
改为覆盖isCellEditable(int, int)
类的JTable
。
注意:您的问题标题非常具有误导性,因为您要覆盖isCellEditable(int, int)
的{{1}},而不是DefaultTableModel
。
另一个注意事项:我认为很明显您使用的是GUI构建器,我的建议是 NOT 使用它,因为您不会从GUI构建器中学到任何东西。