Как экспортировать содержимое отфильтрованной jTable в pdfpTable

У меня есть JTable, и я использую JFilter для фильтрации его содержимого на основе пользовательского ввода. Теперь я намерен экспортировать содержимое JTable в PdfPTable, используя библиотеку iText. Содержимое не копируется правильно при использовании фильтра. Однако таблица копируется правильно, если фильтры не используются, то есть пользователь не вводит текст для фильтрации. Я считаю, что это происходит из-за того, что содержимое в JTable не меняется, так как я использую rowSorted, как показано здесь:

фильтрация

TableRowSorter<TableModel> rowSorter = new TableRowSorter<>(jTable.getModel());
jTable.setRowSorter(rowSorter);
jtfFilter.getDocument().addDocumentListener(new DocumentListener(){

    @Override
    public void insertUpdate(DocumentEvent e) {
        String text = jtfFilter.getText();

        if (text.trim().length() == 0) {
            rowSorter.setRowFilter(null);
        } else {
            rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
        }
    }

    @Override
    public void removeUpdate(DocumentEvent e) {
        String text = jtfFilter.getText();

        if (text.trim().length() == 0) {
            rowSorter.setRowFilter(null);
        } else {
            rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
        }
    }

Инстанцирование:

PdfPTable pdfTable = new PdfPTable(somejTable.getColumnCount());

Копирование:

for(int i=0;i<rowCnt;i++)
    {
        for(int j=0;j<colCnt;j++)
        {
            Object val = table.getModel().getValueAt(i, j);
            if((val!=null))
                pdfTable.addCell(val.toString());
            else
                pdfTable.addCell("null");

        }
    }

Так есть ли способ получить точное отфильтрованное содержимое JTable? Нужно ли мне использовать что-то вроде rowSorter в PdfPTable? Благодарю.

1 ответ

Решение

Необходимо преобразовать каждый индекс строки таблицы в индекс строки модели, вызвав convertRowIndexToModel(),

Посмотрите, как я могу получить отфильтрованную модель

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