如何传递参数以打印JTable?

时间:2019-04-18 07:46:14

标签: java printing jtable

因此,我遇到这样的情况,用户可能希望在代码的各个位置使用一个小的JTable,然后将其打印或保存为CSV文件。 因此,我创建了一个名为“ Output2”的JDialog,它使用JTable,询问用户他想做什么,并按照要求进行操作。

尝试了各种选择,例如:

(1)如果我使用JTable作为参数,则它对于打印和CSV文件都可以正常工作,但是我知道这是禁止的。但这是我发现可行的唯一方法。

(2)如果我将表模型作为参数传递,我得到的只是空白页(CSV文件很好)。

(3)如果我跨2个数组传递并在Output2中从它们“重新创建” JTable,我将得到相同的-空白页,CSV很好。

好像Output2不能建立有效的JTable,因此table.print例程没有任何可打印的内容。 CSV输出始终可以正常工作,因为它可以将数据从数组中拉出,但效果很好。

将Output2打印代码剥离到最低限度,方法3如下所示。

那么将所需参数传递给Output2以便使用table.print函数的“正确”方法是什么?

public class Output2 extends JDialog {  
   public Output2(String[][] rows, String[] headings)  {
        DefaultTableModel tableModel = new DefaultTableModel(rows, headings);
        JTable tableToOutput = new JTable(tableModel);      
        try {
            if (! tableToOutput.print()) {
                System.err.println("User cancelled printing");
            }
        } catch (java.awt.print.PrinterException e) {
            System.err.format("Cannot print %s%n", e.getMessage());
        }
     }
}

0 个答案:

没有答案