如何向JTable添加空行?

时间:2013-06-06 19:34:46

标签: java swing jtable jcheckbox tablecellrenderer

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

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

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

3 个答案:

答案 0 :(得分:3)

  

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

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

然后你有两个选择:

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

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

答案 1 :(得分:2)

尝试

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

答案 2 :(得分:0)

对于第一列的TableColumn实例,创建一个单元格渲染器(通过实现javax.swing.table.TableCellRenderer),该渲染器呈现一个与null不同的布尔值的复选框(javax.swing.JCheckBox),并呈现一个空标签(javax.swing.JLabel)表示空值。你不能提供DefaultTableCellRenderer(javax.swing.table.DefaultTableCellRenderer)AFAICT。

然后使用TableColumn.setCellRenderer

设置TableColumn实例的表格单元格渲染器属性