Я хотел бы добавить фильтр, чтобы иметь возможность игнорировать прописные и строчные буквы и акценты при поиске в Jtable, но у меня проблема.
Проблема заключается в флаге для фильтрации Jtable, когда я применяю флаг для фильтрации слов, включая заглавные буквы ((? I)), он работает идеально, но когда я добавляю флаг, который, как я понимаю, служит для включения слов с акцентами, это не так. не работает. Я не могу найти решение этой проблемы, я уже пробовал некоторые RegEx, и я тоже не могу заставить его работать.
DietTable.setModel(new DefaultTableModel(
new Object[][] {
{false, "Alfalfa, O-I vegetativo", 20.0f, 69.0f, 2.6f, 25.0f, 39.0f, 44.0f, 17.0f},
{false, "Alfalfa, P-V 50% F", 24.0f, 63.0f, 1.9f, 19.0f, 18.0f, 61.0f, 12.0f},
{false, "Soja, pastoreo R4", 20.0f, 65.0f, 2.7f, 22.0f, 25.0f, 55.0f, 15.0f},
{false, "Trébol blanco", 21.0f, 66.0f, 2.9f, 23.0f, 40.0f, 54.0f, 18.0f},
{false, "Trébol rojo", 19.0f, 65.0f, 2.8f, 20.0f, 25.0f, 55.0f, 12.0f};
DefaultTableModel DietTableModel = (DefaultTableModel) DietTable.getModel();
final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(DietTableModel);
DietTable.setRowSorter(sorter);
textField_filter = new JTextField();
GridBagConstraints gbc_textField_filter = new GridBagConstraints();
gbc_textField_filter.insets = new Insets(0, 0, 5, 0);
gbc_textField_filter.fill = GridBagConstraints.HORIZONTAL;
gbc_textField_filter.gridx = 1;
gbc_textField_filter.gridy = 1;
SubRightPane.add(textField_filter, gbc_textField_filter);
textField_filter.setColumns(10);
textField_filter.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent evt) {
String text = textField_filter.getText();
if(text.length() == 0) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(RowFilter.regexFilter("(?iu)" + text));
}}
(?ui)
не включает сопоставление без учета акцента. Перед этим вам нужно нормализовать строку. - person Wiktor Stribiżew   schedule 03.07.2021