2016-01-09 6 views
0

У меня есть JTable с параметрами фильтрации, добавленными к каждому заголовку столбца, с использованием java-библиотеки SwingBits. Теперь, помимо фильтров заголовков столбцов, я фильтрую последний столбец по тексту, введенному в JTextField.Повторное применение фильтра для фильтрации JTable view

Проблема заключается в том, что после фильтрации jtable с использованием фильтров столбцов, и я пытаюсь использовать фильтр TextField, фильтрация применяется к исходной таблице, а не к фильтруемому представлению. Я понимаю, что модель таблицы содержит исходные данные таблицы, так есть ли обходной путь для этой проблемы?

ответ

1

Вам необходимо использовать «andFilter», чтобы объединить несколько фильтров в один.

Например, ознакомьтесь с разделом учебника Swing по телефону Sorting and Filtering. Вы можете изменить демо с кодом следующим образом, чтобы фильтровать строки, где текст находится в двух столбцах, а не только один:

//rf = RowFilter.regexFilter(filterText.getText(), 1); 
List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2); 
filters.add(RowFilter.regexFilter(filterText.getText(), 0)); 
filters.add(RowFilter.regexFilter(filterText.getText(), 1)); 
rf = RowFilter.andFilter(filters); 
+0

Его не так прямо в моем случае. Поскольку я использую SwingBits (которая является внешней библиотекой) для фильтрации заголовков столбцов, у нее есть собственный механизм фильтрации, который я все еще не совсем понимаю после изучения исходного кода. Я не знаю, как интегрировать это с моим фильтром полезной нагрузки. – fsociety

 Смежные вопросы

  • Нет связанных вопросов^_^