DefaultTableCellRenderer funciona apenas clicando sobre a linha da JTable?

Estou criando um DefaultTableCellRenderer para pintar as células de uma coluna baseado no status da célula, o problema é que isso apenas funciona se eu clicar sobre a linha da tabela e não sei pq isso está acontecendo.

Como resolver isso ?

public class ContasCustomRenderer extends DefaultTableCellRenderer{ 
    
    @Override
    public Component getTableCellRendererComponent(JTable table, 
                                                    Object value, 
                                                    boolean isSelected, 
                                                    boolean hasFocus, 
                                                    int row, 
                                                    int column) {        
        
        JLabel label = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        Conta obj = ((ContaTableModel)table.getModel()).getObject(row);
        
        if(!isSelected){
            setBackground(Color.WHITE);
        }else{
            setBackground(Color.BLUE);
        }
        
        //pinta celula coluna 5 do status
        if(column == 5 && obj.getStatus() == Status.ATIVO){
            label.setBackground(Color.GREEN);            
        }
        if(column == 5 && obj.getStatus() == Status.INATIVO){           
            label.setBackground(Color.RED);            
        }
        
           
        //private String[] colunas = {"Num.Conta ", "Corretora ", "Tipo ", "Aporte ", "Ativo " , "Status "};
        table.getColumnModel().getColumn(0).setPreferredWidth(100); //num.conta
        table.getColumnModel().getColumn(1).setPreferredWidth(150); //corretora
        table.getColumnModel().getColumn(2).setPreferredWidth(100); //tipo
        table.getColumnModel().getColumn(3).setPreferredWidth(100); //aporte
        table.getColumnModel().getColumn(4).setPreferredWidth(100); //ativo
        table.getColumnModel().getColumn(5).setPreferredWidth(100); //status 
        
        label.setHorizontalAlignment(getAlinhamento(column));
               
        return label;
    }
    
    private int getAlinhamento(int coluna){
        switch (coluna) {  
           case 0:  
               return SwingConstants.CENTER;  
           case 1:  
               return SwingConstants.LEFT;  
           case 2:  
               return SwingConstants.CENTER;
           case 3: 
               return SwingConstants.RIGHT;
           case 4: 
               return SwingConstants.CENTER;
           case 5: 
               return SwingConstants.CENTER;
           default:  
               return SwingConstants.RIGHT;  
       }  
    }
}

Resolvido. O problema foi que eu estava usando JXTable e não havia percebido. Mudei para JTable e funcionou blzinha.