Galera,
tenho uma JTable com seu DefautTableModel (dtm). Através de uma pesquisa em banco, o dtm é preenchido legal. Porém eu desejo dar a opção ao usuário de escolher linhas para remover, por exemplo, as linhas cujo valores da 1ª coluna sejam iguais a 10, quando ele pressionar um dado botão. Então, o vetor de dados deve ser varrido em busca do valor 10 na 1ª coluna, em todas as linhas. No actionPerformed do botão, pensei neste código:
Vector rs = dtm.getDataVector();
java.util.Iterator it = rs.iterator();
while(it.hasNext()) {
Vector r = (Vector) it.next();
if(r.elementAt(0).equals(10)) {
it.remove();
}
};
dtm.setDataVector(rs, columns);
//columns: vector de nomes das colunas.
Funciona ok, MENOS QUANDO A TABELA ESTÁ ROLADA ATÉ O FIM… no momento do clique, se houver linhas pra remover elas são removidas, e a tabela se deforma rapidamente voltando ao normal.
Isso não atrapalha em nada, porém não fica bem esteticamente essa rápida deformada da tabela.
Isto é:
Quando se remove linhas com toda a tabela visível ou a barra de rolagem não está no final, as linhas são removidas perfeitamente:


mas quando a barra de rolagem está no final, …

… e linhas são removidas, a %&#@! da tabela se deforma por um pequeno intervalo de tempo: …

… até voltar ao normal:

Alguém teria um outro código? :?

