2012-04-10 30 views
1

我有下面的方法創建一個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

是否有任何其他方法那需要成爲crea特德?

+2

另請參閱很多樂趣[獲取表格的圖像](http://stackoverflow.com/q/7369814/418556)。 ;) – 2012-04-10 16:16:24

回答

2

在教程打印一些說明你需要以打印顯示的表,所以將其添加到JFrame,然後frame.setVisible(true);然後frame.setVisible(false);
這將使它打印。