我认为
prepareRenderer(...)代码应该是:
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { Component c = super.prepareRenderer(renderer, row, column); if ((column == 2 || column == 3) && (Boolean)getValueAt(row, 0)) { return c; } // if (column == 0 || column == 1 || (Boolean) getValueAt(row, 0)) { if (column == 0 || column == 1) { return c; } return Box.createRigidArea(c.getPreferredSize()); }然后,您应该删除
prepareEditor(...)代码。相反,您应该在
isCellEditable(...)方法中具有更多逻辑。就像是:
public boolean isCellEditable(int row, int column) { if (column == 0) return true; if (column == 1 || column == 4 || column == 5) return false; return (Boolean)getValueAt(row, 0); }


