[RESOLVIDO] Jtable com coluna ordenada decrescente do início

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);

lucas_duzo,
obrigado pela dica.

Solução encontrada:

[code] public void ordenarPorItemDecrescente() {
Collections.sort(this.linhas, new Comparator<ItemPedido>() {
@Override
public int compare(ItemPedido c1, ItemPedido c2) {
return c2.getItem().compareTo(c1.getItem());
}
});

    fireTableDataChanged();
}[/code]

Adicionando o item na jTable:

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:

public void remove(int indice) { this.linhas.remove(indice); fireTableRowsDeleted(indice, indice); for (int i = 0; i &lt; this.linhas.size(); i++) { this.linhas.get(i).setItem(String.format(&quot;%02d&quot;, this.linhas.size() - i)); // corrige a numeração dos itens. } ordenarPorItemDecrescente(); }