我使用“设计”选项在eclipse中创建了JTable,现在我想让一些单元格不可编辑。这是我的代码:
public Frame(int choice) {
initComponents();
defaultModel = (DefaultTableModel) m0.getModel();
if (choice == 0) {
defaultModel.setColumnCount(7);
defaultModel.removeRow(6);
}
defaultModel.isCellEditable(2,2);
defaultModel.isCellEditable(3,3);
}
public boolean isCellEditable(int row, int column) {
return false;
}
细胞(2,2)和(3,3)应该是不可编辑的。但它不起作用。有人可以帮忙吗?
答案 0 :(得分:1)
你在这看到问题吗?:
public boolean isCellEditable(int row, int column) {
return false; // !!!!!!!
}
单元格(2,2)和(3,3)应该是可编辑的。但它不起作用。有人可以帮忙吗?
您使用isCellEditable(...)方法覆盖将单元格设置为不可编辑,然后您莫名其妙地想知道为什么它们不可编辑。对不起,但这有点疯狂。解决方案是更改isCellEditable(...)
方法返回的内容,以便它可以执行您想要的操作。如果你想要它可以编辑2,2和3,3,那么把这个逻辑放在上面的方法中。
修改强>
我看到你编辑了你的问题,现在它是:
public boolean isCellEditable(int row, int column) {
return false;
}
细胞(2,2)和(3,3)应该是不可编辑的。但它不起作用。有人可以帮忙吗?
这当然会改变一切。我的猜测是你的isCellEditable不是JTable或其模型的真正覆盖。您之前是否尝试过添加@Override注释?你能告诉我们它实际上是如何覆盖当前的JTable或它的模型吗?您需要证明此方法在扩展JTable或其模型的类中,并且这实际上是正在使用的类。