有没有办法向jtable添加空行,其中第一列是布尔值,因此它不会显示自动生成的复选框?
我需要它来分隔行组。 我尝试使用下面的代码,但它不起作用:
model.addRow(new Object[]{null,null,null,null});
答案 0 :(得分:3)
我想让一些行完全为空,因此它们可以作为分隔符。但在休息时我想保留复选框
不是在模型中存储Boolean.TRUE或Boolean.FALSE,而是需要存储null。
然后你有两个选择:
创建一个自动显示布尔值的自定义渲染器,并识别空值并且不显示任何内容。
重写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实例的表格单元格渲染器属性