Таблица фильтрации со столбцом JCheckBox
У меня есть JTable с 6 столбцами. Первый столбец-это столбец JCheckBox. Я создал окно поиска, чтобы отфильтровать таблицу с помощью этого кода:
String searchWord = searchTextField.getText();
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>( myTable.getModel() );
myTable.setRowSorter( sorter );
sorter.setRowFilter( RowFilter.regexFilter( searchWord );
Проблема, если пользователь искал "истинное", "ложное", "Т", "ГП", ... он возвращает строки с включенными или отключенными флажками ... Я предполагаю, что он имеет дело с их значением как true / false.
Итак, есть ли способ игнорировать первый столбец при фильтрации таблицы ?
1 ответ:
Вы можете указать regexFilter, какие столбцы вы хотите проверить. Допустим, у вас есть пять столбцов в таблице, и первый из них-это столбец JCheckBox, тогда вы можете игнорировать его, используя:
sorter.setRowFilter( RowFilter.regexFilter( searchWord, 1, 2, 3, 4 ) );
Из документов для
RowFilter
:RegexFilter
public static <M,I> RowFilter<M,I> regexFilter(String regex, int... indices)
Параметры:
Регулярное выражение-регулярное выражение для фильтрации по
Индексы-индексы значений для проверки. Если не поставлено все ценности есть оценено