Jak mogę wykonać filtr bez rozróżniania wielkości liter na JTable?

Tworzę tabelę z polem tekstowym poniżej, w którym możesz wpisać słowo, aby przefiltrować tabelę. Działa, ale chcę zrobić to za pomocą wpisanego słowa, ale ignorując przypadek słowa. Czy istnieje sposób, aby to osiągnąć bez tworzenia niestandardowegoRowFilter?

Możesz uruchomić ten SCCEE, aby zobaczyć, o czym mówię. Chcę móc wpisaćusa i będzie filtrowaćUSA.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

public class TestTableSortFilter extends JApplet {

    private String[] columnNames
            = {"Country", "Capital", "Population in Millions", "Democracy"};

    private Object[][] data = {
        {"USA", "Washington DC", 280, true},
        {"Canada", "Ottawa", 32, true},
        {"United Kingdom", "London", 60, true},
        {"Germany", "Berlin", 83, true},
        {"France", "Paris", 60, true},
        {"Norway", "Oslo", 4.5, true},
        {"India", "New Delhi", 1046, true}
    };

    private JTable jTable = new JTable(data, columnNames);

    private TableRowSorter<TableModel> rowSorter
            = new TableRowSorter<>(jTable.getModel());

    private JTextField jtfFilter = new JTextField();
    private JButton jbtFilter = new JButton("Filter");

    public TestTableSortFilter() {
        jTable.setRowSorter(rowSorter);

        JPanel panel = new JPanel(new BorderLayout());
        panel.add(new JLabel("Specify a word to match:"),
                BorderLayout.WEST);
        panel.add(jtfFilter, BorderLayout.CENTER);

        add(panel, BorderLayout.SOUTH);
        add(new JScrollPane(jTable), BorderLayout.CENTER);


        jtfFilter.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
                String text = jtfFilter.getText();

                if (text.trim().length() == 0) {
                    rowSorter.setRowFilter(null);
                } else {
                    rowSorter.setRowFilter(RowFilter.regexFilter(text));
                }
            }
        }); 
    }
}

Czy jest coś, co mogę przekazaćregexFilter(text), to da mi pożądany rezultat?

rowSorter.setRowFilter(RowFilter.regexFilter(text));

questionAnswers(2)

yourAnswerToTheQuestion