Создание и использование нескольких фильтров / поисков с использованием JTable или GlazedLists
Я посмотрел, как использовать несколько фильтров здесь с обычной таблицей, и ответы все указали на 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);
}
Дублирование кода и создание другого JTextField
не работает. Я посмотрел эту проблему, и она появляется CompositeMatcherEditor
может работать. Проблема в том, что я не знаю, как это реализовать.
Также я использую Eclipse. Я загрузил GlazedLists
1.8.0 и бросил его в Eclipse. Тем не менее, я не могу использовать это. У меня повсюду красные квадраты (кроме папки с исходным кодом)! Я даже добавил файл фляги.
Я надеюсь, что я объяснил себя правильно. Пожалуйста, дайте мне знать, если мне нужно расширить.
Мой Pastebin: имя, браузер, TableFormat, TableModel
1 ответ
TextFilterList устарел - смотрите javadocs - но это побочная проблема.
Есть несколько подходов, которые вы можете использовать здесь - если вы хотите действительно простой, то просто оберните ваш список фильтров в другой список фильтров:
EventList filtered = new FilterList(new FilterList(nameE, myFirstMatcherEditor), mySecondMatcherEditor);
Лучше всего использовать несколько редакторов соответствия для создания CompositeMatcherEditor:
EventList filtered = new FilterList(nameE, new CompositeMatcherEditor(myFirstMatcherEditor, mySecondMatcherEditor));
Вы можете использовать setMode, чтобы контролировать, комбинируются ли ваши редакторы с использованием поведения И или ИЛИ.
Здесь необходимо прочитать информацию об использовании списков фильтров.
Скриншоты, доступные здесь, также стоят вложений в несколько минут.