0

我有一个大约 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 中完成的,所以有没有办法以某种方式将过滤放在工作线程中?

4

0 回答 0