2012-04-10 4 views
1

Ich habe die folgende Methode, die eine JTable erstellt dann druckt es aus, indem es als ein Rechteck keine Seite mit der Kopf- und Fußzeile erscheint.JTable erscheint als Box beim Drucken

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(); 
    } 
} 

Was ist sonst noch falsch? In der Tabelle befinden sich Daten, die aus denselben Daten erstellt werden, die in einem der Bereiche angezeigt werden.

In meiner abstrakten Tabellenmodell ich die folgenden Methoden implementiert haben:

  • Constructor
  • getRowCount
  • getColumnCount
  • getValueAt
  • getColumnNames

andere Methoden Gibt es das muss krea sein ted?

+2

Siehe auch viel Spaß [Bilder von Tabellen zu bekommen] (http://stackoverflow.com/q/7369814/418556). ;) –

Antwort

2

Sie müssen die Tabelle, um es zu drucken angezeigt werden, so fügen Sie es zu einem JFrame, dann frame.setVisible(true); dann frame.setVisible(false);
Dies wird es drucken.