Fala pessoal,
Sei que é um assunto batido nos foruns, porém testei as ideias e os códigos de muitos locais diferentes e nao consegui resolver, por isso recorro a vocês.
Tenho uma APP, que tem um Jtable que por sua vez é preenchido por um ArrayList de Objetos e tal.
Quando o usuário clica no Botão Pesquisar, é startado o processo de popular o grid que funiona perfeitamente, inclusive incluindo linhas no Jtable caso seja necessário.
Porém, esta acontecendo o seguinte:
se o usuário clicar novamente no Botão Pesquisar, o resultado dessa nova pesquisa está sendo colocado junto com o resultado da outra busca.
Exemplo: CLicou em pesquisar: troxe 20 linhas e colocou no Grid, CLicou em pesquisar novamente, trouxe as mesmas 20 linhas e acrescentou abaixo da ultima linha do resultado anterior,totalizando 40 linhas, ao invés de ter limpado o grid e adicionado somente o resultado da nova pesquisa.
Ja testei N maneiras, e não consegui sucesso. Alguém ja passou por isso ?
Vou colocar o código que popula o Grid:
public void populaGrid(){
/*ESTE FOI O MEU ULTIMO TESTE FEITO PARA ZERAR A TABELA - PARA POPULAR A TABELA RETIRANDO AS LINHAS DO RESULTADO ANTERIOR*/
if(((DefaultTableModel)jTable1.getModel()).getRowCount() > 0){
((DefaultTableModel)jTable1.getModel()).removeRow(0);
}
int linhas = nav.size(); //TAMANHO DO ARRAYLIST DE OBJETOS
/*ACRESCENTA LINHAS CASO O ARRAYLIST CONTENHA MAIS OBJETOS QUE O NUMERO DE LINHAS PADRÃO*/
if(jTable1.getModel().getRowCount()< linhas) {
int rowsleft = linhas - jTable1.getModel().getRowCount();
for(int i=1; i<=rowsleft; i++ ){
((DefaultTableModel)jTable1.getModel()).addRow(new Vector());
}
}
/*POPULA GRID COM VALORES DO ARRAYLIST*/
for(int i=1; i<= linhas -1; i++){
jTable1.getModel().setValueAt(nav.get(i).getNome(),i,0);
jTable1.getModel().setValueAt(nav.get(i).getDateeta(),i,1);
}
}
Obrigado desde já pela ajuda.