Sort JTable com Java 6(Mustang)

Olá pessoal,

Estou com dificuldades na ordenação de minha JTable.

Estou usando o Java 6 (Mustang), onde foi incluído no pacote do swing uma classe para ordenamento das JTable, o TableRowSorter.
Apenas com duas linhas minha tabela possui seu ordenamento prórpio, muito bom isso.

RowSorter<TableModel> rowSorter = new TableRowSorter<TableModel>(model); //onde model é um DefaultTableModel
tableTree.setRowSorter(rowSorter);

Na minha JTable(tableTree) eu exibo os arquivos e diretórios de meu HD.

Como eu renderizei a primeira coluna para que seja exibido os ícones de meu sistema, quando clico no header desta coluna, ela não ordena do jeito que eu queria.

Seguinte: nesta coluna não esta armazenado String, e sim o tipo File, onde quando eu renderizo eu pego o ícone e o nome do arquivo e pinto a célula.

O que eu quero:
Quando clicar no header desta coluna, o sort coloque primeiro os diretórios ordenados pelo nome, e em seguida os arquivos tb ordenados pelo nome dos arquivos.

Onde eu faço o meu próprio sort? Qual classe? Já existe alguma pronta para o que eu quero?

Vou continuar tentando aqui, se conseguir posto no forum.

Bom … na empresa que trabalho como usamos java 1.4 tive que implementar isso na mão entao acabei utilizado Comparator para esta questao que ordenava o dataVector do DefaulttableModel e acho que o TableSorter tb utiliza mais ou menos o mesmo esquema e classe File implementa comparator mas delega isso para o FileSystem ai ja não sei como ele funciona mais provavelmente não seja pelo nome do arquivo… na minha opinião vc poderia deixar as strings memo de vez dos Files e guardar os file em algum map com algum id blza…

link de ordenação

http://www.exampledepot.com/egs/javax.swing.table/Sorter.html
http://www.exampledepot.com/egs/javax.swing.table/SortCol.html?l=rel

é so implementar no click do mouse pela coluna

opa diego, tudo bem?

Obrigado pelos links, mas eu já tinha olhado estes dois exemplos vasculhando o google.

Acho que a melhor solução, e a mais simples, seria mexer na propria classe do TableRowSorter (ou seria da classe RowSorter?) que é encarregada pela ordenação, fazer um override nela, sacou?
Aí eu poderia manipular para que eu conseguisse exibir primeiro os diretórios e depois os arquivos, ambos ordenados.

Depois de conseguir, já me ajudaria a ordenar minha coluna “Tamanho” que está ordenando como String.

Assim, dependendo da coluna que foi clicada, se ela fosse “Nome” eu ordenava de uma forma, se fosse “Tamanho” eu ordenaria de outra forma, e as restante deixaria o default dela mesmo.