在此代码中,我正在添加数据库中的数据。我想用标签设置单元格渲染器。但是,如果我运行此代码,我只有复选框。
try {
List<Group> listgrChild = grMgmtModel.performList();
for (final Group group : listgrChild) {
table.getColumnModel().getColumn(0)
.setCellRenderer(new TableCellRenderer() {
// the method gives the component like whome the
// cell must
// be rendered
public Component getTableCellRendererComponent(
JTable table, Object value,
boolean isSelected, boolean isFocused,
int row, int col) {
boolean marked = new Boolean(String
.valueOf(value));
JCheckBox rendererComponent = new JCheckBox();
if (marked) {
rendererComponent.setSelected(true);
}
return rendererComponent;
}
});
tbModel.addRow(new Object[] { group.getGroupName() });
}
答案 0 :(得分:1)
您发表评论,“renderComponent.setText("Hello")
仅提供最后一个值。”
验证您的TableModel
是否具有每行复选框状态和标签值的单独存储空间。在此example中,班级Value
包含相关数据:
private static class Value implements Comparable<Value> {
private Boolean selected;
private Double value;
…
}
相应的TableModel
管理List<Value>
,所需的renderer and editor相应地使用每个Value
实例中的数据。顺便说一下,Value
为方便sorting实现了Comparable
界面。