1

我有以下方法,它创建一个 JTable,然后通过显示为矩形而不是带有页眉和页脚的页面将其打印出来。

public void printModules(){
    MessageFormat header = new MessageFormat("Modules " + new Date());
    MessageFormat footer = new MessageFormat("Created by Assignments Database");
    try {
        JTable jtModules = new JTable(new ModulesTableModel(Controller.getInstance().getModules()));
        jtModules.setShowHorizontalLines(true);
        jtModules.setShowVerticalLines(true);
        jtModules.setShowGrid(true);

        boolean complete = jtModules.print(JTable.PrintMode.NORMAL, header, footer, true, null, false, null);

        if(complete){
            System.out.println("Printed");
        } else{
            System.out.println("Printing Cancelled");
        }
    } catch (PrinterException e) {
        e.printStackTrace();
    }
}

还有什么问题?表中有数据,因为其中一个面板中显示了从相同数据创建的数据。

在我的抽象表模型中,我实现了以下方法:

  • 构造函数
  • 获取行数
  • 获取列数
  • 获取值
  • 获取列名

还有其他需要创建的方法吗?

4

2 回答 2

2

您需要显示表格才能打印它,因此将其添加到 a JFrameframe.setVisible(true);然后frame.setVisible(false);
这将使其打印。

于 2012-04-10T16:32:05.357 回答
2

JTable对打印的支持非常少,关于JTable (inc. code example)Printing的教程中有一些关于打印的描述

于 2012-04-10T15:53:03.960 回答