Обновления фильтров строк JTable - PullRequest
2 голосов
/ 25 марта 2010

Есть ли способ сообщить фильтру строк JTable, что он должен обновить себя для отображения отфильтрованных данных? В настоящее время я использую метод fireTableDataChanged в AbstractTableModel, но базовые данные для таблицы на самом деле не меняются, поэтому кажется, что это может быть расточительным. Мой фильтр работает так, чтобы проверять, есть ли данные в таблице в каком-либо другом списке, и отображать их, только если они находятся в этом списке. Так что другой список изменился, и мне нужно сказать фильтру обновить себя. Является ли fireTableDataChanged правильным способом сделать это?

спасибо, Джефф

1 Ответ

7 голосов
/ 25 марта 2010

fireTableDataChanged это правильный способ сделать это.

Я бы посчитал "другой список" частью ваших данных. Это означает, что она должна быть частью вашей настольной модели. Поэтому, когда она меняется, модель должна вызывать fireTableDataChanged. Это сделает свое дело.

Если вы не можете сделать ее частью своей модели, она должна по крайней мере уведомить модель, когда произошли изменения, и тогда модель вызовет fireTableDataChanged. Для уведомлений вы можете использовать стандартный подход слушателей или, если вы предпочитаете глобальный подход *, может помочь Event Bus framework .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...