Можно ли отфильтровать 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, так есть ли способ как-то поместить фильтрацию в рабочий поток?

0 ответов

Другие вопросы по тегам