基于jtextfield NON区分大小写(Java)过滤JTable

Aik*_*áro 2 java swing jtable case-sensitive rowfilter

我已经可以使用JTextField过滤JTable,问题是区分大小写.例如,我在Jtable中得到了这个名字:"Guillian Fox",如果我在textField中写"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));

    }
Run Code Online (Sandbox Code Playgroud)

mKo*_*bel 8

忽略CaseWhatever

ordenador.setRowFilter(RowFilter.regexFilter("(?i)" + text));
Run Code Online (Sandbox Code Playgroud)

但是对于非ASCII语言,你必须检查键盘上与Big ENTER一致的四个键(2x2),

如果您关注此问题,那么您必须从键盘中排除这四个键并为UpperCase和LoverCase编写自己的矩阵