classificação por várias colunas em JTable
Pergunta
Eu sei que JTable
pode classificar por uma única coluna. Mas é possível para permitir a classificação por várias colunas ou que eu preciso para escrever o código de mim mesmo?
Solução
Você pode classificar por várias colunas, especificando mais de uma chave tipo ao chamar setSortKeys
na RowSorter
você está usando.
Outras dicas
JXTable . JXTable é uma extensão de JTable que triagem suportes de várias colunas, bem como outras funções que não fornece JTable. É livremente disponível a partir JDNC / SwingLabs.
Você deve ser capaz de definir o TableRowSorter eo comparador associado a ele. Exemplo:
TableModel myModel = createMyTableModel();
JTable table = new JTable(myModel);
TableRowSorter t = new TableRowSorter(myModel);
t.setComparator(column that the comparator works against, Comparator<?> comparator);
table.setRowSorter(new TableRowSorter(myModel));
étable da coleção netbeans.
É parte do org-netbeans-swing-outline.jar
Uma pesquisa no google algo a volta por cima.
O étable é principalmente uma fundação para Contorno (a TreeTable) mas tem ordenação multi-coluna construído em, bem como muitos outros recursos interessantes
"Eu sei que JTable pode ordenar por uma única coluna. Mas é possível para permitir a coluna múltipla tipo ou eu preciso escrever o código de mim mesmo?"
Tabela de classificação e filtragem é gerido por um objeto classificador. A maneira mais fácil de fornecer um objeto classificador é definir autoCreateRowSorter propriedade associado a true;
JTable table = new JTable();
table.setAutoCreateRowSorter(true);
Esta ação define um classificador de linha que é uma instância de javax.swing.table.TableRowSorter.