JTable在打印时显示为框

时间:2012-04-10 15:39:00

标签: java swing jtable

我有以下创建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();
    }
}

还有什么问题?表中的数据是从同一数据创建的数据显示在其中一个面板中。

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

  • 构造
  • getRowCount
  • getColumnCount
  • getValueAt
  • getColumnNames

是否还需要创建其他方法?

2 个答案:

答案 0 :(得分:2)

JTable已缩减support for printing,有关于JTable (inc. code example)Printing

的教程中有关于打印的说明

答案 1 :(得分:2)

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