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.