DefaultTableCellRenderer de uma JTable?

Salve galera.

Estou tentando criar um Renderer para minhas JTables mas nao sei o que esta acontecendo na hora de alinhar os valores das celulas.

aqui como estou tentando fazer.

public class JTableRenderer {
    private DefaultTableCellRenderer renderer;
    private JTable tabela;
    
    public JTableRenderer(JTable tabela){
        this.renderer = new DefaultTableCellRenderer();
        this.tabela = tabela;
        configuracaoGeral();
    }
    
    public void configuracaoGeral(){
        tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        tabela.getTableHeader().setResizingAllowed(false);
        tabela.getTableHeader().setReorderingAllowed(false);
        JTableHeader cabecalho = tabela.getTableHeader();
        cabecalho.setFont(new Font("Tahoma",Font.BOLD, 11));
    }
    
    public void tamanhoColuna(int col, int width){
        tabela.getColumnModel().getColumn(col).setPreferredWidth(width);  
    }
    
    public void alinharEsquerda(int col) {  
        renderer.setHorizontalAlignment(SwingConstants.LEFT);  
        tabela.getColumnModel().getColumn(col).setCellRenderer(renderer);  
    }  
  
    public void alinharCentro(int col) {  
        renderer.setHorizontalAlignment(SwingConstants.CENTER);  
        tabela.getColumnModel().getColumn(col).setCellRenderer(renderer);  
    }  
  
    public void alinharDireita(int col) {  
        renderer.setHorizontalAlignment(SwingConstants.RIGHT);  
        tabela.getColumnModel().getColumn(col).setCellRenderer(renderer);  
    }  
}

O problema acontece nos metodos alinharEsquerda, alinharCentro e alinharDireita…

aqui como estou usando

 public void entradas(){
        List<Caixa> lista = new CaixaDAO().getEntradasCaixa();
        EntradasCaixaTableModel ecTM = new EntradasCaixaTableModel(lista);
        tabelaEntradas.setModel(ecTM);
        JTableRenderer tr = new JTableRenderer(tabelaEntradas);        
        tr.tamanhoColuna(0, 60);//data
        tr.tamanhoColuna(1, 50);//hora
        tr.tamanhoColuna(2, 60);//tipo
        tr.tamanhoColuna(3, 70);//id produto
        tr.tamanhoColuna(4, 200);//descricao
        tr.tamanhoColuna(5, 90);//valor un
        tr.tamanhoColuna(6, 70);//qtd
        tr.tamanhoColuna(7, 30);//unidade
        tr.tamanhoColuna(8, 90);//total
        
        tr.alinharDireita(3);
        tr.alinharCentro(6);
        
    }

Quando tento alinhar por exemplo a direita e depois no centro, todos os q mandei ficam no centro e naum um a direita e outro no centro, na maneira como estou tentando fazer por exemplo.

a coluna 3 deveria alinhar a direita
a coluna 6 deveria alinhar ao centro

Mas ao contrario disso apenas alinha no centro, e como se respeitasse apenas o ultimo metodo invocado. Nao sei pq isso acontece, como resolver isso ?

obrigado.

Resolvi o problema…vlw ae !

E como o problema foi resolvido? Qual era o erro?

Opa Vini…A maneira como eu estava fazendo definindo apenas um renderer para os alinhamentos, nao funciona, precisei definir um renderer para cada alinhamento, acho eu que o renderer nao permite ser definido uma unica vez, me corrija se estiver errado. Bem, mas o caso foi q agora funcionou como preciso.

aqui:

public class JTableRenderer {    
    private JTable tabela;
    
    public JTableRenderer(JTable tabela){        
        this.tabela = tabela;
        configuracaoGeral();
    }
    
    public void configuracaoGeral(){
        tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        tabela.getTableHeader().setResizingAllowed(false);
        tabela.getTableHeader().setReorderingAllowed(false);
        JTableHeader cabecalho = tabela.getTableHeader();
        cabecalho.setFont(new Font("Tahoma",Font.BOLD, 11));
    }
    
    public void tamanhoColuna(int col, int width){
        tabela.getColumnModel().getColumn(col).setPreferredWidth(width);  
    }
    
    public void alinharEsquerda(int col) {  
        DefaultTableCellRenderer esquerda = new DefaultTableCellRenderer();
        esquerda.setHorizontalAlignment(SwingConstants.LEFT);                
        tabela.getColumnModel().getColumn(col).setCellRenderer(esquerda);  
    }  
  
    public void alinharCentro(int col) {  
        DefaultTableCellRenderer centro = new DefaultTableCellRenderer();
        centro.setHorizontalAlignment(SwingConstants.CENTER);                
        tabela.getColumnModel().getColumn(col).setCellRenderer(centro);  
    }  
  
    public void alinharDireita(int col) {  
        DefaultTableCellRenderer direita = new DefaultTableCellRenderer();
        direita.setHorizontalAlignment(SwingConstants.RIGHT);                
        tabela.getColumnModel().getColumn(col).setCellRenderer(direita);  
    }  
}

t+ e obrigado