Anomalia na inserção de dados na JTable

Boa noite developers,

Estou com um problema no método PopularTable(). Quando clico no evento ele desfaz a estrutura da minha tabela e traz apenas os ID dos clientes.
Segue imagens abaixo para entender melhor:

Como deveria ser após clicado no botão “Popula Tabela”:

jTable

Como ela fica após clicar no botão “Popula Tabela”:

jTable-Anomalia

Valeu…

Posta o código completo das classes envolvidas.
Através das imagens não dá pra adivinhar sua implementação. :wink:

1 curtida

Acredito que o problema esteja na implementação dos métodos da tua table model. Eles estão retornando apenas uma coluna para cada ação.
O getColumnName devolve o array com o nome das colunas de uma única vez (por isso o nome da coluna apresenta os valores separados por vírgula, em uma única coluna).
E o getValueAt parece devolver corretamente.
Ah, provavelmente o getColumnCount esteja como 1, apenas.

Flw brother! Eu estou no trabalho agora, mas por volta das 19h estarei

Boa noite, deem uma olhadinha na minha carga de tabela vinda do BD, se precisar, mostro minhas classes de ServicesFactory, DAO e da conexão com o BD.

private void dadosCliente(){
    
     try{
        
        ClienteService cs = ServiceFactory.getClienteService();
        
        ArrayList<CadClientes> cad = new ArrayList<>();
        
        cad = cs.searchCliente();
        
        for(int i = 0; i < cad.size(); i++){
            
            dtm.addRow(new String[]{
                String.valueOf(cad.get(i).getIdCliente()),
                String.valueOf(cad.get(i).getNome()),
                String.valueOf(cad.get(i).getCpf()),
                String.valueOf(cad.get(i).getTelefone()),
                String.valueOf(cad.get(i).getEndereco()),
            });   
        }
        
        jTable1.setModel(dtm);
        
     }catch(Exception ex){
         JOptionPane.showMessageDialog(rootPane,
                "Erro: "+ ex.getMessage(),
                "Erro",
                JOptionPane.ERROR_MESSAGE);
    }
}

Se isto significa o que eu acredito que significa, eu vou dizer para parar com isso já e começar do zero (ao menos o table model).
Isto me leva a crer que você está usando o (temível) DefaultTableModel. Logo, tenho que te dizer para abandonar ele e criar o seu próprio.

Ele é ruim?
Só aprendi com ele, bem, pensei que aprendi…

Olha, ele é obscuro, para dizer o mínimo. Você sabe como ele funciona, por baixo dos panos?
Eu sei, a ideia de ter que fazer algo do zero, na mão, parece assustadora (sim, um dia eu já tive que dar esse passo, sair do DTM e passar para um CustomTableModel).
Agora, quando você desenvolver e ver o quão simples isso é, você vai se perguntar: por quê eu nunca tinha feito isso antes?

Obrigado pela grande ajuda, mas poderia me fazer mais um grande favor? Sabes me dizer onde posso aprender a usar esse novo método? Conhece alguns sites?

Dá uma olhada aqui