-1

在这段代码中,我从数据库中添加数据。我想用标签设置单元格渲染器。但是,如果我运行此代码,我只会得到复选框。

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

1 回答 1

1

您评论说,“renderComponent.setText("Hello")只给出最后一个值。”

验证您TableModel对每行的复选框状态和标签值是否具有单独的存储空间。在此示例中,该类Value包含相关数据:

private static class Value implements Comparable<Value> {
    private Boolean selected;
    private Double value;
    …
}

相应的TableModel管理器和List<Value>所需的渲染器和编辑器相应地使用来自每个Value实例的数据。顺便说一句,为了方便排序Value实现了接口。Comparable

于 2013-08-26T10:36:34.840 回答