автоматическая фильтрация в JTable - PullRequest
1 голос
/ 02 августа 2010

У меня есть стандартная JTable с определенными данными внутри. Я хотел бы создать функцию автоматической фильтрации: когда пользователь вводит слова в определенном текстовом поле, процесс фильтрации запускается автоматически, без необходимости нажатия кнопки. Возможно ли это в Java Swing?

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Да, это возможно!

Запустите демонстрацию SwingSet3 (из Swinglabs): http://download.java.net/javadesktop/swingset3/SwingSet3.jnlp

В категории «Данные» есть демонстрационная версия JTable, в которой перечислены кандидаты и победители Оскара.

TextField с заголовком «Поиск заголовков и получателей» выполняет именно то, что вы хотите. Демонстрация SwingSet3 даже позволяет выделять фрагменты кода через ComboBox-запись «Настройка поискового фильтра».

RowFilter в первом фрагменте игнорирует ведущие "The" и "A", чтобы соответствовать большему количеству названий фильмов. Я бы заменил шаблон RegEx на этот

".*" + filterString + ".*" 

чтобы получить настоящий "найди все, пока я печатаю" пользовательский опыт.

Во втором фрагменте показано, как реализовать DocumentListener для обновления фильтра таблицы при каждом нажатии клавиши.

0 голосов
/ 02 августа 2010

Да, это возможно. Прочитайте JTable API и перейдите по ссылке на учебник Swing в разделе «Как использовать таблицы», где вы найдете рабочий пример фильтрации, которая делает это.

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