我尝试使用以下代码过滤我的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
答案 0 :(得分:0)
首先,嵌入的不区分大小写的标志是"(?i)"
,而不是("?i")
。其次,您不需要在字符串周围添加".*"
。只要您没有使用"^"
和"$"
将其包围,匹配器就会在该字段内的任何位置找到它。初始化过滤器要简单得多,如下所示:
RowFilter.regexFilter("(?i)" + eingabe, 1);