4

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

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

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

3 回答 3

3

我想让一些行完全为空,以便它们用作分隔符。但在休息时我想保留复选框

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

然后你有两个选择:

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

  2. 覆盖 JTable.getCellRenderer() 方法。当值为 null 时返回 Object.class 的渲染器。Oject 类的默认渲染器会将 null 显示为空字符串。

于 2013-06-06T20:07:36.543 回答
2

尝试

model.addRow(new Object[]{Boolean.FALSE,null,null,null});
于 2013-06-06T19:53:40.070 回答
0

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

然后使用 TableColumn.setCellRenderer 设置 TableColumn 实例的表格单元格渲染器属性

于 2013-06-06T20:04:42.470 回答