Como remover linhas duplicadas em uma DefaultTableModel

3 respostas
java
J

Olá pessoal queria uma ajuda de vocês, tanto na lógica como no comando java!
como faço para criar um comando que remove linhas duplicadas em uma DefaultTableModel?

Exemplo: Tabela com 3 colunas chamada id, frutas, quantidade

id, frutas, quantidade
01 Ababacaxi 4
02 Manga 2
03 Uva 2
04 Ababacaxi 2

queria um código que removese essa dublicação mantendo apenas o que tem maior quantidade removendo por um botão sem precisa que a pessoa clique na linha dublicada!

3 Respostas

S

Primeiramente na utilize DefaultTableModel ele só é útil para grades com conteúdo fixo.
Especialize seu próprio TableModel estendendo a classe AbstractTableModel.

Recomendo se basear no GenericAbstractTableModel que o colega @lucas_camara postou neste tópico.

Depois, se você estiver programando orientado a objetos, é só verificar sua coleção de objetos Fruta e quando encontrar alguma repetida, atualizar a quantidade da primera e remover a repetida.

J

Obrigado pelas dicas vou estudar esta abstração

consegui resolver com a lógica empregada neste código ficou show comparando os IDs
onde j sempre será a ocorrencia da quantidade menor, pois ela sempre sai dublida por ultimo na tabela!

for (int i = 0; i < modelo.getRowCount(); i++) {

for (int j = i+1; j < modelo.getRowCount(); j++) {

if ((int)modelo.getValueAt(i, 0) == (int)modelo.getValueAt(j, 0)) {

<a href="//System.out.println" rel="noopener nofollow ugc">//System.out.println</a>(“i”+ modelo.getValueAt(i, 0));

<a href="//System.out.println" rel="noopener nofollow ugc">//System.out.println</a>(“j”+ modelo.getValueAt(j, 0));

modelo.removeRow(j);

}

}

}
J

obrigado irei estudar

Criado 17 de fevereiro de 2023
Ultima resposta 17 de fev. de 2023
Respostas 3
Participantes 2