У меня есть JTable с четырьмя столбцами, первый из которых содержит либо число, либо текст, а остальные три - только текст. Я пытаюсь отфильтровать эту таблицу с помощью RowFilter:
sorter = new TableRowSorter<TableModel>(myOwnTableModel);
Флажок Фильтр, который я получил, работает достаточно хорошо:
sorter.setRowFilter(RowFilter.regexFilter("^[0-9]$", 0));
Этот сортировщик активируется или деактивируется в зависимости от того, установлен флажок или нет.
Вторая фильтрация происходит, если пользователь помещает некоторый текст в текстовое поле. Для себя это уже отлично работает:
String regex = "(?i)" + Pattern.quote(s); // s = input Text of user
sorter.setRowFilter(RowFilter.regexFilter(regex, 1,2,3));
Что я не могу сделать, так это активировать оба фильтра одновременно. Может быть, я слишком далеко задумываюсь, моя идея состояла в том, чтобы "объединить" два фильтра, флажок должен быть "и" другой "или". Я перепробовал несколько вещей, для меня самый многообещающий выглядел примерно так:
String regex = "(?i)" + Pattern.quote(s);
bookFilter = RowFilter.regexFilter(regex, 1,2,3);
sorter.setRowFilter(bookFilter.andFilter(Arrays.asList(
RowFilter.regexFilter("^[0-9]$", 0))));
К сожалению, это не приводит к какому-либо полезному результату. Любые идеи приветствуются:)