[RESOLVIDO] Jtable com coluna ordenada decrescente do início
2 respostas
V
vicentedepaula
Olá pessoal,
Tenho uma JTable para itens de um pedido que está sendo digitado pelo usuário, a qual usa como modelo uma classe estendida de AbstractTableModel.
Uso nela o setAutoCreateRowSorter(true);
Ao adicionar linhas nesta JTable, necessito que as mesmas fiquem ordenadas de forma decrescente pela primeira coluna, sem necessidade de clicar no cabeçalho dela. Como fazer isto ?
Você pode implementar a classe Comparable<> e ao adicionar algum item na sua lista, antes de atualizar a sua Jtable, você efetua a ordenação através do Collections.sort(suaLista);
public void adiciona(ItemPedido c) {
this.linhas.add(c);
ordenarPorItemDecrescente();
fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
e se remover algum item da jTable, fazer o seguinte:
publicvoidremove(intindice){this.linhas.remove(indice);fireTableRowsDeleted(indice,indice);for(inti=0;i<this.linhas.size();i++){this.linhas.get(i).setItem(String.format("%02d",this.linhas.size()-i));// corrige a numeração dos itens.}ordenarPorItemDecrescente();}