Java 如何将空行添加到JTable?

Java 如何将空行添加到JTable?,java,swing,jtable,jcheckbox,tablecellrenderer,Java,Swing,Jtable,Jcheckbox,Tablecellrenderer,有没有办法将空行添加到jtable,其中第一列是布尔值,因此它不会显示自动生成的复选框 我需要它来分隔一组行。 我尝试使用下面的代码,但不起作用: model.addRow(new Object[]{null,null,null,null}); 试一试 对于第一列的TableColumn实例,制作一个单元格呈现器(通过实现javax.swing.table.TableCellRenderer),为不同于null的布尔值呈现一个复选框(javax.swing.JCheckBox),并为null值

有没有办法将空行添加到jtable,其中第一列是布尔值,因此它不会显示自动生成的复选框

我需要它来分隔一组行。 我尝试使用下面的代码,但不起作用:

model.addRow(new Object[]{null,null,null,null});
试一试


对于第一列的TableColumn实例,制作一个单元格呈现器(通过实现javax.swing.table.TableCellRenderer),为不同于null的布尔值呈现一个复选框(javax.swing.JCheckBox),并为null值呈现一个空标签(javax.swing.JLabel)。提供DefaultTableCellRenderer(javax.swing.table.DefaultTableCellRenderer)AFAICT是无法做到这一点的

然后使用TableColumn.setCellRenderer设置TableColumn实例的table cell renderer属性


我想让一些行完全为空,这样它们就可以用作分隔符。但在其余部分,我想保留复选框

您需要存储null,而不是在模型中存储Boolean.TRUE或Boolean.FALSE

那么您有两个选择:

  • 创建一个自定义渲染器,正常显示布尔值,识别空值,不显示任何内容

  • 重写JTable.getCellRenderer()方法。在值为null时返回Object.class的渲染器。项目类的默认呈现器将以空字符串形式显示null


  • 等等…是…还是不是布尔值??你不想要一个复选框,对吗?我想让一些行完全为空,这样它们就可以用作分隔符。但在其余部分,我想保留复选框。谢谢您的回复。我已经试过了,但它给出的结果与前面的代码相同=一个空复选框。你说的“空”是什么意思?不检查?如果要选中复选框,是否尝试过Boolean.TRUE?
    model.addRow(new Object[]{Boolean.FALSE,null,null,null});