После изучения и попытки понять asp, как работает класс RowFilter, я, кажется, получил свой стол, чтобы отсортировать его так, как я хочу. Мне все еще нужно провести дополнительное тестирование, но похоже, что оно работает. Я до сих пор не в полной мере gr asp класс RowFilter, поэтому я хотел бы получить некоторые отзывы.
Вот мой код: где ArrayList<Integer> filteredRows = new ArrayList<>();
содержит номера строк, которые я хочу показать. Насколько я понимаю, фильтр автоматически выполняет итерации по моей табличной модели, а идентификатор - это номер строки, которую фильтр обрабатывает в настоящее время. Итак, на первый взгляд, если идентификатор равен любому из номеров строк, которые я сохранил, то покажите его.
RowFilter<DefaultTableModel,Integer> rf = new RowFilter<>() {
@Override
public boolean include(Entry<? extends DefaultTableModel, ? extends Integer> entry) {
int entryRow = entry.getIdentifier();
for (Integer i : filteredRows) {
if (entryRow == i) return true;
}
return false;
}
};
TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(myTableModel);
sorter.setRowFilter(null);
sorter.setRowFilter(rf);
table.setRowSorter(sorter);