下面列出了javax.swing.RowFilter#regexFilter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void updateFilter(String filterText)
{
filterText = "(?i)" + filterText;
@SuppressWarnings({ "rawtypes", "unchecked" })
TableRowSorter<TopLevelTableModel> sorter = (TableRowSorter) table.getRowSorter();
if (filterText.length() == 0) {
sorter.setRowFilter(null);
} else {
try {
RowFilter<TopLevelTableModel, Object> rf = RowFilter.regexFilter(filterText, 0, 1);
sorter.setRowFilter(rf);
} catch (java.util.regex.PatternSyntaxException e) {
sorter.setRowFilter(null);
}
}
tableLabel.setText("Matching parts (" + sorter.getViewRowCount() + ")");
}
@Override
public void actionPerformed (ActionEvent e)
{
RowFilter<DiskTableModel, Object> rf = null;
try
{
rf = RowFilter.regexFilter (getFilterText (), 2);
}
catch (java.util.regex.PatternSyntaxException exception)
{
return;
}
sorter.setRowFilter (rf);
}
private void filterTable(String text)
{
String filterString = text;
ArrayList<RowFilter<TableModel, Object>> andFilter = new ArrayList<RowFilter<TableModel, Object>>(1); //split.length);
ArrayList<RowFilter<TableModel, Object>> subFilter;
RowFilter<TableModel, Object> rf;
RowFilter<TableModel, Object> rf0;
try
{
subFilter = new ArrayList<RowFilter<TableModel, Object>>(1); //split.length);
for (Integer i = 0; i < model.getColumnCount(); i++)
{
rf0 = RowFilter.regexFilter("^(?i)" + filterString, i);
subFilter.add(rf0);
}
rf = RowFilter.orFilter(subFilter);
andFilter.add(rf);
}
catch (PatternSyntaxException pse)
{
Log.error(pse);
}
RowFilter<TableModel, Object> rowf = RowFilter.andFilter(andFilter);
sorter.setRowFilter(rowf);
}