Я уже могу фильтровать JTable, используя JTextField, проблема в том, что он чувствителен к регистру. Например, я получил это имя в Jtable: «Guillian Fox», если я напишу «guillian fox» или «GUILLIAN FOX» в текстовом поле, имя которого не отображается.
Я знаю, что у java есть методы .toLowerCase или .toUpperCase, но проблема с использованием этих методов в том, что результат будет неприглядным, потому что оба должны быть в верхнем или нижнем регистре, когда подходящей будет первая буква в верхнем регистре, потому что имена.
Строки JTable взяты из запроса в базе данных. Итак, решение, о котором я думал, это не делать фильтр непосредственно в jtable, вместо этого делать запрос, который фильтрует результаты, но я думаю, что это очень неэффективно, учитывая, что я сделаю запрос для каждого символа, вставленного или удаленного из textField.
@Override
public void changedUpdate(DocumentEvent arg0) {
ordenador.setRowFilter(RowFilter.regexFilter(jtxtfBuscarInv.getText(), 0));
}
@Override
public void insertUpdate(DocumentEvent arg0) {
ordenador.setRowFilter(RowFilter.regexFilter(jtxtfBuscarInv.getText(), 0));
}
@Override
public void removeUpdate(DocumentEvent arg0) {
ordenador.setRowFilter(RowFilter.regexFilter(jtxtfBuscarInv.getText(), 0));
}