有没有办法向jtable添加空行,其中第一列是布尔值,所以它不会显示自动生成的复选框?
我需要它来分隔行组。我尝试使用下面的代码,但它不起作用:
model.addRow(new Object[]{null,null,null,null});
有没有办法向jtable添加空行,其中第一列是布尔值,所以它不会显示自动生成的复选框?
我需要它来分隔行组。我尝试使用下面的代码,但它不起作用:
model.addRow(new Object[]{null,null,null,null});
我想让一些行完全为空,以便它们用作分隔符。但在休息时我想保留复选框
您需要存储空值,而不是在模型中存储 Boolean.TRUE 或 Boolean.FALSE。
然后你有两个选择:
创建一个自定义渲染器,正常显示布尔值并识别空值并且不显示任何内容。
覆盖 JTable.getCellRenderer() 方法。当值为 null 时返回 Object.class 的渲染器。Oject 类的默认渲染器会将 null 显示为空字符串。
尝试
model.addRow(new Object[]{Boolean.FALSE,null,null,null});
对于第一列的 TableColumn 实例,制作一个单元格渲染器(通过实现 javax.swing.table.TableCellRenderer),它为不同于 null 的布尔值渲染一个复选框 (javax.swing.JCheckBox),并渲染一个空标签 (javax. swing.JLabel) 用于空值。您不能通过提供 DefaultTableCellRenderer (javax.swing.table.DefaultTableCellRenderer) AFAICT 来做到这一点。
然后使用 TableColumn.setCellRenderer 设置 TableColumn 实例的表格单元格渲染器属性