Preciso classificar a coluna com "Data de criação do arquivo", mas se a coluna "Tipo de arquivo" == FyleType.DIRECTORY, essa linha deve estar no topo. Ou seja, a primeira classificação deve ser por tipo e, depois, por data.
Minha JTable:
Tipo | Nome do arquivo | Data |
---|---|---|
DIRETÓRIO | nomedoarquivo1 | 2025.04.03 |
DIRETÓRIO | nomedoarquivo2 | 2025.02.01 |
ARQUIVO | nomedoarquivo3.txt | 2025.01.01 |
ARQUIVO | nomedoarquivo4.txt | 2025.02.03 |
Eu tentei usar
TableRowSorter<FileTableModel> tableRowSorter = new TableRowSorter<>(tableModel);
tableRowSorter.setComparator(2, ((o1, o2) -> {}
Comparador, mas ele só obtém o valor da célula atual e não consigo obter o tipo de arquivo porque a data não é única
Outra opção é criar um
JTable
que contenha umaFile
cópia de cada coluna de dados. Dessa forma, você precisaria alterar oTableCellRenderer
para exibir o tipo de arquivo, nome do arquivo ou data de criação do arquivo a partir doFile
dependendo da coluna, mas os comparadores para cada coluna seriam capazes de obter o tipo de arquivo e a data de criação do arquivo a partir doFile
ao mesmo tempo.Você precisa criar um comparador (deve ser uma classe não estática em ou com acesso ao seu modelo de tabela) para definir em seu RowSorter, como