将Boolean.TRUE存储为真实值。然后为错误的值存储一个空字符串。然后,您需要:
a)重写getCellRenderer(…)方法以为单元格中找到的数据返回适当的渲染器。
b)使包含空字符串的单元格不可编辑:
JTable table = new JTable(data, columnNames){ public TableCellRenderer getCellRenderer(int row, int column) { if (column == 0) { Class cellClass = getValueAt(row, column).getClass(); return getDefaultRenderer( cellClass ); } return super.getCellRenderer(row, column); } public boolean isCellEditable(int row, int column) { Class cellClass = getValueAt(row, column).getClass(); if (column == 0 && cellClass instanceof Boolean) { return true; } else { return false; } return super.isCellEditable(row, column); }};使用这种方法,不需要自定义渲染器或编辑器。



