class CheckCellRenderer extends JCheckBox implements TableCellRenderer {
    protected static Border m_noFocusBorder;    public CheckCellRenderer() {
        super();
        m_noFocusBorder = new EmptyBorder(1, 2, 1, 2);
        setOpaque(true);
        this.setHorizontalAlignment(SwingConstants.CENTER);
        setBorder(m_noFocusBorder);
    }    public Component getTableCellRendererComponent(JTable table,
                                                   Object value, boolean isSelected, boolean hasFocus, int row, int column) {        if (value instanceof Boolean) {
            Boolean b = (Boolean) value;
            System.out.println("check cell renderer" + row++);
            setSelected(b.booleanValue());
        }
        setBackground(isSelected && !hasFocus ?
                table.getSelectionBackground() : table.getBackground());
        setForeground(isSelected && !hasFocus ?
                table.getSelectionForeground() : table.getForeground());
        setFont(table.getFont());
        setBorder(hasFocus ? UIManager.getBorder("Table.focusCellHighlightBorder") : m_noFocusBorder);        return this;
    }
}