我试图根据列过滤行,说c1包含布尔值。我想只显示在c1中有'true'的行。 我查看了http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#sorting中的示例。 该示例使用正则表达式过滤器。有什么办法可以使用布尔值来过滤行吗?
以下是我使用的代码(借用示例)
private void filter(boolean show) {
RowFilter<TableModel, Object> filter = null;
TableModel model = jTb.getModel();
boolean value = (Boolean) model.getValueAt(0,1);
//If current expression doesn't parse, don't update.
try {
// I need to used 'value' to filter instead of filterText.
filter =RowFilter.regexFilter(filterText, 0);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(filter);
}
谢谢。
答案 0 :(得分:4)
您是否从the javadoc尝试了此示例? (略有修改)。
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.getValue(i).equals(true)) {
return true;
}
}
return false;
}
};