Я не мог заставить это работать, и примеры, которые я нашел, работали только с одним RowFilter.andFilter или RowFilter.orFilter.Есть ли способ объединить два, чтобы получить что-то вроде (A || B) && (C || D)?Ниже приведен пример кода того, что я пытаюсь сделать.
ArrayList<RowFilter<Object,Object>> arrLstColorFilters = new ArrayList<RowFilter<Object,Object>>();
ArrayList<RowFilter<Object,Object>> arrLstCandyFilters = new ArrayList<RowFilter<Object,Object>>();
RowFilter<Object,Object> colorFilter;
RowFilter<Object,Object> candyFilter;
TableRowSorter<TableModel> sorter;
// OR colors
RowFilter<Object,Object> blueFilter = RowFilter.regexFilter("Blue", myTable.getColumnModel().getColumnIndex("Color"));
RowFilter<Object,Object> redFilter = RowFilter.regexFilter("Red", myTable.getColumnModel().getColumnIndex("Color"));
arrLstColorFilters.add(redFilter);
arrLstColorFilters.add(blueFilter);
colorFilter = RowFilter.orFilter(arrLstColorFilters);
// OR candies
RowFilter<Object,Object> mAndMFilter = RowFilter.regexFilter("M&M", myTable.getColumnModel().getColumnIndex("Candy"));
RowFilter<Object,Object> mentosFilter = RowFilter.regexFilter("Mentos", myTable.getColumnModel().getColumnIndex("Candy"));
arrLstCandyFilters.add(mAndMFilter);
arrLstCandyFilters.add(mentosFilter);
candyFilter = RowFilter.orFilter(arrLstCandyFilters);
// Mentos and M&Ms that are red or blue (this is where I'm stuck)
sorter.setRowFilter(RowFilter.andFilter(candyFilter, colorFilter); //this does not work
Если бы кто-то мог предоставить рабочий фрагмент того, что я пытаюсь сделать в последней строке, это было бы очень полезно.В настоящее время ведутся две отдельные модели таблиц, чтобы обойти эту проблему, и я хотел бы избежать дублирования данных.
Спасибо, Кай