0

我尝试使用以下代码过滤我的 JTable:

String eingabe = eingabeF.getText();
RowFilter.regexFilter(".*" + eingabe + ".*", 1)

它工作得很好。但我想过滤它不区分大小写。我的列“1”中的所有值在开头都有大写字母。

我试过这个:

String eingabe = eingabeF.getText();
setRowFilter(RowFilter.regexFilter(("?i") + Pattern.quote(".*" + eingabe + ".*"), 1));

但我总是收到以下错误消息:

Exception in thread "AWT-EventQueue-3" java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0
?i\Q.*f.*\E
4

1 回答 1

0

首先,嵌入的不区分大小写标志是"(?i)", 而不是("?i"). 其次,你不需要把".*"你的绳子放在周围。匹配器会在字段中的任何位置找到它,只要您不使用"^"and包围它"$"。初始化过滤器要简单得多,如下所示:

RowFilter.regexFilter("(?i)" + eingabe, 1);
于 2013-11-28T00:15:27.527 回答