gpt4 book ai didi

java - 如何将过滤后的 jTable 的内容导出到 pdfpTable

转载 作者:行者123 更新时间:2023-12-02 01:39:42 27 4
gpt4 key购买 nike

我有一个 JTable,并使用 JFilter 根据用户输入过滤其内容。现在我打算使用 iText 库将 JTable 的内容导出到 PdfPTable。使用过滤器时,内容无法正确复制。但是,如果不使用过滤器,即可以正确复制表,即用户不输入任何文本进行过滤。我相信这是因为 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的精确过滤内容呢?我是否还需要在 PdfPTable 上使用 rowSorter 之类的东西?谢谢。

最佳答案

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

参见How can I get the filtered model

关于java - 如何将过滤后的 jTable 的内容导出到 pdfpTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54614850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com