Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing->JTable->RowSorter / RowFilter / 5 сообщений из 5, страница 1 из 1
19.10.2018, 11:51
    #39719833
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing->JTable->RowSorter / RowFilter
Добрый день, коллеги.

Никак не пойму, почему не работает фильтрация таблицы.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
TableRowSorter<ReadOnlyTableModel> rowSorter = new TableRowSorter<>(model);
table.setRowSorter(rowSorter);        
...
private void filter(String search) {
        if (search == null || search.trim().length() == 0) {
            rowSorter.setRowFilter(null);
        } else {
            RowFilter<ReadOnlyTableModel, Integer> filter = new RowFilter<ReadOnlyTableModel, Integer>() {
                @Override
                public boolean include(RowFilter.Entry<? extends ReadOnlyTableModel, ? extends Integer> entry) {
                    String f = TextUtils.escapeMetaCharacters(search).toLowerCase();
                    for (int i = entry.getValueCount() - 1; i >= 0; i--) {
                        if (entry.getStringValue(i).toLowerCase().contains(f)) {
                            return true;
                        }
                    }
                    return false;
                }
            };
            rowSorter.setRowFilter(filter);
        }
    }



Выскакивает исключение которое я никак не могу даже загуглить.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
Exception in thread "Thread-5" java.lang.NullPointerException
	at java.lang.Class.isAssignableFrom(Native Method)
	at javax.swing.table.TableRowSorter.useToString(TableRowSorter.java:245)
	at javax.swing.DefaultRowSorter.updateUseToString(DefaultRowSorter.java:624)
	at javax.swing.DefaultRowSorter.sort(DefaultRowSorter.java:573)
	at javax.swing.DefaultRowSorter.setRowFilter(DefaultRowSorter.java:424)
	at com.kuazot.ciska.gui.inputs.ListBoxInputDialog.filter(ListBoxInputDialog.java:452)
        ...
...
Рейтинг: 0 / 0
19.10.2018, 11:59
    #39719839
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing->JTable->RowSorter / RowFilter
AndronovMV,

пошаговая отладка знакома?
...
Рейтинг: 0 / 0
19.10.2018, 12:02
    #39719840
by-pass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing->JTable->RowSorter / RowFilter
У Вас смешались разные понятия: сортировка и фильтрация.
При выполнении сортировки никакой фильтрации данных не происходит, выполняется сортировка данных в колонке таблицы.
Определитесь, что Вам нужно.
Код: java
1.
2.
3.
4.
        // Set rows sorter
        sorter = new TableRowSorter<TableModel>(model);
        sorter.setRowFilter(null);
        tbl.setRowSorter(sorter);
...
Рейтинг: 0 / 0
19.10.2018, 12:25
    #39719859
by-pass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing->JTable->RowSorter / RowFilter
AndronovMV,

Попробуйте простой фильтр. Так должно работать:
Код: java
1.
sorter.setRowFilter(RowFilter.regexFilter("(?i)" + txtFilter.getText()));
...
Рейтинг: 0 / 0
19.10.2018, 13:29
    #39719938
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing->JTable->RowSorter / RowFilter
Всем спасибо, но дело оказалось не в шляпе ) Сам затупил. И кстати с в сортере задается фильтр. Это адресуется by-pass`у )
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing->JTable->RowSorter / RowFilter / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]