Можно ли отфильтровать JTable в рабочем потоке?
У меня есть JTable с около 11000 строк и окно поиска, используемое для фильтрации по регулярным выражениям. Мой код в окне поиска выглядит так:
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);
}
.......
Проблема заключается в том, что весь пользовательский интерфейс перестает отвечать на запросы во время операции фильтрации. Я предполагаю, что это потому, что фильтрация выполняется в EventDispatchThread, так есть ли способ как-то поместить фильтрацию в рабочий поток?