JTable + consulta DB mysql[Resolvido]

Bom dia galera estou com a seguinte duvida.
Quando faço uma consulta no DB mysql e jogo os dados em uma jtable ela carrega somente o telefone da consulta e coloca em todos os campos e e linhas

Essa é a parte do código:

while(rs.next()){ for(int x = 0; x < 2; x++){ for(int y = 0; y < 5; y++){ setModel(setValueAt(rs.getString("nome"), x,y)); setModel(setValueAt(rs.getString("sobrenome"), x,y)); setModel(setValueAt(rs.getString("endereco"), x,y)); setModel(setValueAt(rs.getString("telefone"), x,y)); } } }

Só que ele me retorna em todas as linhas e colunas o telefone, o que estou fazendo de errado?
Desde ja agradeço!

Esse é o problema de fazer consulta e montar a tela na mesma classe.
Se você separasse a consulta, populasse uma coleção com objetos que representam os dados do banco, ficaria mais fácil identificar o problema.

O drsmachado tem razão, se você carregar os dados em uma coleção e depois usá-la para carregar o JTable vai ser mais claro.

Acho que além disso tem um problema com a lógica do seu for:
O que são o x e y? x é a linha e y é a coluna?

Não entendi bem o setModel(setValueAt(… , mas tudo bem.

Observe que quando você dá quatro setValueAt em sequência, x e y não mudam de valor. Você está dando os quatro setValueAt na mesma linha e coluna, ou seja, na mesma célula. Um sobrescreve o outro.
Por isso que as células estão ficando todas com o telefone, que é o último setValueAt que você está dando.
Dê uma repensada na lógica dos seus for e do while.

al.barbosa tem razão vou dar uma melhorada nessa falta de lógica e posto o resultado.
Se alguem tiver mais alguma sugestão agradeço.

Galera valeu pelas dicas. eu sei e resolvi da seguinte maneira, criei um modelo e também separei a consulta da tabela:

[code]ArrayList contatos = dao.consulta(JTextFieldConsulta.getText());

for(int x = 0; x < contatos.length; x++){
modelo.setValueAt((String)contatos.getNome(), x , 1);
modelo.setValueAt((String)contatos.getSobrenome(), x , 2);
modelo.setValueAt((String)contatos.getEndereco(), x , 3);
.
.
.
}[/code]

Obrigado mesmo galera!!!

[quote=Enadrov]Galera valeu pelas dicas. eu sei e resolvi da seguinte maneira, criei um modelo e também separei a consulta da tabela:

[code]ArrayList contatos = dao.consulta(JTextFieldConsulta.getText());

for(int x = 0; x < contatos.length; x++){
modelo.setValueAt((String)contatos.getNome(), x , 1);
modelo.setValueAt((String)contatos.getSobrenome(), x , 2);
modelo.setValueAt((String)contatos.getEndereco(), x , 3);
.
.
.
}[/code]

Obrigado mesmo galera!!![/quote]
Apenas sobre este typecast, talvez sejam desnecessários.