Ordinamento a più colonne in JTable
Domanda
So che JTable
può ordinare per una singola colonna. Ma è possibile consentire l'ordinamento di più colonne o devo scrivere il codice da solo?
Soluzione
Puoi ordinare per più colonne specificando più di una chiave di ordinamento quando chiami setSortKeys
in RowSorter
che stai utilizzando.
Altri suggerimenti
Guarda JXTable . JXTable è un'estensione di JTable che supporta l'ordinamento multi-colonna, così come altre funzioni che JTable non fornisce. È disponibile gratuitamente da JDNC / SwingLabs.
Dovresti essere in grado di impostare TableRowSorter e il Comparatore ad esso associati. Esempio:
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));
ETable dalla raccolta netbeans.
Fa parte di org-netbeans-swing-outline.jar
Una ricerca su Google dovrebbe alzare.
ETable è principalmente una base per Outline (una TreeTable) ma ha l'ordinamento multi-colonna integrato e molte altre belle funzionalità
" So che Jtable può ordinare per una singola colonna. Ma è possibile consentire l'ordinamento di più colonne o devo scrivere il codice da solo? & Quot;
L'ordinamento e il filtro delle tabelle sono gestiti da un oggetto sorter. Il modo più semplice per fornire un oggetto sorter è impostare la proprietà associata autoCreateRowSorter su true;
JTable table = new JTable();
table.setAutoCreateRowSorter(true);
Questa azione definisce un classificatore di righe che è un'istanza di javax.swing.table.TableRowSorter.