Как мне сделать фильтр для разных параметров?

Поэтому я пытаюсь отфильтровать таблицу по умолчанию в JFrame, набрав текстовое поле. Количество столбцов, которые я могу иметь в своих таблицах по умолчанию, зависит от того, сколько фильтров выбирают пользователи, а также сколько разных столбцов выбирают пользователи (в программе я даю пользователю возможность выбрать количество фильтров / столбцов, которые они хотят выбрать)., Пока что я могу настроить общий фильтр, который выполняет поиск по ВСЕЙ таблице по умолчанию, которая заполняется из другого источника. Вот пример...

Фильтр - это текстовое поле...

            filter.getDocument().addDocumentListener(new DocumentListener() {
            @Override
            public void changedUpdate(DocumentEvent arg0) {
                // TODO Auto-generated method stub
                throw new UnsupportedOperationException("Not supported");
            }

            @Override
            public void insertUpdate(DocumentEvent arg0) {
                // TODO Auto-generated method stub
                String text = filter.getText();
                text.trim();
                if (text.trim().length() == 0) {
                    rowSorter.setRowFilter(null);
                } else {
                    rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
                }
            }

            @Override
            public void removeUpdate(DocumentEvent arg0) {
                // TODO Auto-generated method stub
                String text = filter.getText();
                text.trim();
                if (text.trim().length() == 0) {
                    rowSorter.setRowFilter(null);
                } else {
                    rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
                }
            }
        });

По сути, это то, что он настраивает текстовое поле так, что, когда вы начинаете печатать, он отфильтровывает таблицу defaultTable, которая отображается пользователю в JFrame, на основе того, что они печатают.

У меня такой вопрос: поскольку количество фильтров зависит от того, что выбирают пользователи, есть ли способ сделать так, чтобы у меня был массив JTextfield, и эти текстовые поля проходили через тот же прослушиватель действий, чтобы у вас было X текстовых полей суммы что вы ищете в таблице.

Я думаю, что вы создаете разные текстовые поля и запускаете эти текстовые поля с помощью кода, который я написал выше, но у вас будет цикл, и вы запустите эту строку в разных вариантах.

rowSorter.setRowFilter(RowFilter.regexFilter(("(?i)" + text), specificColumn));

Я не знаю, есть ли более простой способ сделать это, но я был бы благодарен за предложения.

Спасибо

0 ответов

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