我有一个大约11000行的JTable和一个用于在正则表达式上进行过滤的搜索框。 我在搜索框中的代码如下所示:
getDocument().addDocumentListener(new DocumentListener()
{
public void insertUpdate(DocumentEvent e)
{
final RowFilter<TableModel, Object> rf;
try
{
rf = RowFilter.regexFilter(getText(), 0);
}
catch (java.util.regex.PatternSyntaxException exception)
{
logger.info("Failed to compile regex.", exception);
return;
}
sorter.setRowFilter(rf);
}
.......
问题是整个UI在过滤操作期间变得无响应。我想这是因为过滤是在EventDispatchThread中完成的 有没有办法以某种方式将过滤放在工作线程中?