CellRenderer

Pessoal, criei um CellRenderer. Quando customizo o meu JTable com o novo CellRenderer, tudo funciona. Mas depois que eu faço uma repopulação no meu JTable, as configurações são perdidas. Alguém sabe pq?

// Classe MyCellRender
public class MyCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {

    public MyCellRenderer() {
        
    }

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        JPanel painel = new JPanel();
        painel.setLayout(new BorderLayout());
        JLabel label = new JLabel(value.toString());
        label.setHorizontalAlignment(JLabel.CENTER);
        painel.setToolTipText(value.toString());
        painel.add(label, BorderLayout.CENTER);
        Color cor = (row%2 == 0)?Color.white:Color.lightGray;
        
        if (isSelected) {
            painel.setBackground(Color.green);

        } else {
            painel.setBackground(cor);
        }

        return painel;

    }

}

// Método que seta o CellRenderer de cada coluna! for(int i=0; i<tabela.getColumnCount(); i++){ tabela.getColumnModel().getColumn(i).setCellRenderer(new MyCellRenderer()); } >

Vejam, está meio pequeno, mas acho que dá pra ver:

Você está repovoando a tabela via JTable.setModel()? Caso positivo, se a tabela estiver configurada para recriar as colunas automaticamente quando o modelo mudar (e normalmente está), creio que as colunas que você configurou via setCellRenderer() vão se perder. A recriação automática de colunas a partir do modelo pode ser configurada através do método JTable.setAutoCreateColumnsFromModel().

Perfeito cara, deu certo…
Setei como true e funcionou corretamente.
Vlw.