Here you can find the source of addSingleSortableColumnListener( @Nonnull RowSorter extends TableModel> rowSorter)
Parameter | Description |
---|---|
rowSorter | the sorter to add the listener to |
Parameter | Description |
---|---|
NullPointerException | if rowSorter is null |
public static RowSorterListener addSingleSortableColumnListener( @Nonnull RowSorter<? extends TableModel> rowSorter)
//package com.java2s; //License from project: Open Source License import java.util.ArrayList; import java.util.List; import java.util.Objects; import javax.annotation.Nonnull; import javax.swing.RowSorter; import javax.swing.RowSorter.SortKey; import javax.swing.event.RowSorterEvent; import javax.swing.event.RowSorterListener; import javax.swing.table.TableModel; public class Main { /**/*ww w . j a v a2s . co m*/ * Add a RowSorterListener to the rowSorter that prevents multiple columns * from being considered while sorting. * * @param rowSorter the sorter to add the listener to * @return the added listener * @throws NullPointerException if rowSorter is null */ public static RowSorterListener addSingleSortableColumnListener( @Nonnull RowSorter<? extends TableModel> rowSorter) { Objects.requireNonNull(rowSorter, "rowSorter must be nonnull."); RowSorterListener listener = new RowSorterListener() { List<? extends SortKey> priorSortKeys = new ArrayList<>(); @Override public void sorterChanged(RowSorterEvent e) { if (e.getType().equals(RowSorterEvent.Type.SORT_ORDER_CHANGED)) { RowSorter<?> source = e.getSource(); List<? extends SortKey> newSortKeys = new ArrayList<>(source.getSortKeys()); newSortKeys.removeAll(priorSortKeys); if (!newSortKeys.isEmpty()) { priorSortKeys = newSortKeys; source.setSortKeys(priorSortKeys); source.allRowsChanged(); } } } }; rowSorter.addRowSorterListener(listener); return listener; } }