如何过滤JTable中的内容导出到pdfpTable

问题描述 投票:0回答:1

我有一个JTable和正在使用JFilter根据用户输入过滤的内容。现在我打算JTable的内容导出到一个利用iText库PdfPTable。内容没有得到在使用filter.However表被正确地复制,如果不使用过滤器,即正确地复制。用户不输入过滤任何文本。我认为,其由于内容没有实际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呢?谢谢。

java jtable itext pdfptable
1个回答
2
投票

你需要通过调用convertRowIndexToModel()每个表行索引模型行索引转换。

How can I get the filtered model

© www.soinside.com 2019 - 2024. All rights reserved.