Создание и использование нескольких фильтров / поисков с использованием JTable или GlazedLists
-
06-07-2019 - |
Вопрос
Я посмотрел, как использовать несколько фильтров здесь с обычной таблицей, и все ответы указали на GlazedLists код>
. Тем не менее, ответы не указали, как его использовать. Мне удалось заставить работать один фильтр, но я не знаю, как получить больше одного.
Для одного фильтра я использовал:
// nameE is a BasicEventList containing classes (name) which
// contain the table values
TextFilterList filtered = new TextFilterList(nameE);
JTextField filterEdit = filtered.getFilterEdit();
// Inside the table value class (name) there is a filter for myName
public void getFilterStrings(List baseList) {
baseList.add(myName);
}
Дублирование кода и создание другого < code> JTextField не работает. Я посмотрел на эту проблему, и она выглядит CompositeMatcherEditor
может работать. Проблема в том, что я не знаю, как это реализовать. Р>
Также я использую Eclipse. Я загрузил GlazedLists
1.8.0 и поместил его в Eclipse. Тем не менее, я не могу использовать это. У меня повсюду красные квадраты (кроме папки с исходным кодом)! Я даже добавил файл фляги. Р>
Надеюсь, я все правильно объяснил. Пожалуйста, дайте мне знать, если мне нужно расширить.
Мой Pastebin: Имя , Браузер , TableFormat , TableModel
Решение
TextFilterList устарел - см. javadocs - но это побочный вопрос.
Есть несколько подходов, которые вы можете использовать здесь - если вы хотите действительно простой, просто поместите ваш список фильтров в другой список фильтров:
EventList filtered = new FilterList(new FilterList(nameE, myFirstMatcherEditor), mySecondMatcherEditor);
Лучшим способом является использование нескольких редакторов соответствия для создания CompositeMatcherEditor :
EventList filtered = new FilterList(nameE, new CompositeMatcherEditor(myFirstMatcherEditor, mySecondMatcherEditor));
вы можете использовать setMode, чтобы контролировать, комбинируются ли ваши редакторы с использованием поведения AND или OR.
Вот необходимо прочитать информацию об использовании списков фильтров.
Скриншоты, доступные здесь , также стоят вложений в несколько минут.