想要带有标签的复选框

时间:2013-08-26 08:38:29

标签: java swing

在此代码中,我正在添加数据库中的数据。我想用标签设置单元格渲染器。但是,如果我运行此代码,我只有复选框。

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() });
        }

1 个答案:

答案 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界面。