JTable 行排序器 - 过滤器管理
JTable row sorter - filter manage
我有一个行过滤器,但我需要加载除值以外的所有内容...
示例:
col1 | col2
-----------
1 | N
2 | Y
3 | O
我需要的:
col1 | col2
-----------
1 | N
3 | O
我有:
RowFilter<TableModel, Object> firstFiler = null;
List<RowFilter<TableModel, Object>> filters = new
ArrayList<RowFilter<TableModel, Object>>();
RowFilter<TableModel, Object> compoundRowFilter = null;
try {
firstFiler = RowFilter.regexFilter("(?i)" + text, 1);
filters.add(firstFiler);
compoundRowFilter = RowFilter.andFilter(filters);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(compoundRowFilter);
参见 JavaDoc 中的示例:
https://docs.oracle.com/javase/8/docs/api/javax/swing/RowFilter.html
上面 JavaDoc link 中的以下示例显示了一种包含方法,该方法仅允许包含一个或多个以字符串 "a":
开头的值的条目
RowFilter<Object,Object> startsWithAFilter = new RowFilter<Object,Object>() {
public boolean include(Entry<? extends Object, ? extends Object> entry) {
for (int i = entry.getValueCount() - 1; i >= 0; i--){
if(entry.getStringValue(i).startsWith("a")) {
// The value starts with "a", include it
return true;
}
}
// None of the columns start with "a"; return false so that this
// entry is not shown
return false;
}
};
您可以修改以上示例,改为包含除“2”以外的所有内容。
我建议通读该 JavaDoc link 的摘要,以更好地理解它的工作原理。
我有一个行过滤器,但我需要加载除值以外的所有内容...
示例:
col1 | col2
-----------
1 | N
2 | Y
3 | O
我需要的:
col1 | col2
-----------
1 | N
3 | O
我有:
RowFilter<TableModel, Object> firstFiler = null;
List<RowFilter<TableModel, Object>> filters = new
ArrayList<RowFilter<TableModel, Object>>();
RowFilter<TableModel, Object> compoundRowFilter = null;
try {
firstFiler = RowFilter.regexFilter("(?i)" + text, 1);
filters.add(firstFiler);
compoundRowFilter = RowFilter.andFilter(filters);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(compoundRowFilter);
参见 JavaDoc 中的示例:
https://docs.oracle.com/javase/8/docs/api/javax/swing/RowFilter.html
上面 JavaDoc link 中的以下示例显示了一种包含方法,该方法仅允许包含一个或多个以字符串 "a":
开头的值的条目 RowFilter<Object,Object> startsWithAFilter = new RowFilter<Object,Object>() {
public boolean include(Entry<? extends Object, ? extends Object> entry) {
for (int i = entry.getValueCount() - 1; i >= 0; i--){
if(entry.getStringValue(i).startsWith("a")) {
// The value starts with "a", include it
return true;
}
}
// None of the columns start with "a"; return false so that this
// entry is not shown
return false;
}
};
您可以修改以上示例,改为包含除“2”以外的所有内容。
我建议通读该 JavaDoc link 的摘要,以更好地理解它的工作原理。