Создание и использование нескольких фильтров / поисков с использованием JTable или GlazedLists - PullRequest
1 голос
/ 27 октября 2009

Я посмотрел, как использовать несколько фильтров здесь с обычной таблицей, и все ответы указали на 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 Ответ

5 голосов
/ 28 октября 2009

TextFilterList устарел - см. javadocs - но это побочная проблема.

Есть несколько подходов, которые вы можете использовать здесь - если вы хотите действительно простой, то просто оберните ваш список фильтров в другой список фильтров:

EventList filtered = new FilterList(new FilterList(nameE, myFirstMatcherEditor), mySecondMatcherEditor);

Лучший способ - использовать несколько редакторов соответствия для создания CompositeMatcherEditor :

EventList filtered = new FilterList(nameE, new CompositeMatcherEditor(myFirstMatcherEditor, mySecondMatcherEditor));

Вы можете использовать setMode, чтобы контролировать, комбинируются ли ваши редакторы с использованием поведения И или ИЛИ.

Вот Необходимо прочитать информацию об использовании списков фильтров.

Доступные скринкасты здесь также стоят вложений в несколько минут.

...