2012-04-20 7 views
5

JTableprint()メソッドを印刷しようとしていますが、このシナリオになるまではうまくいきます。最初のページ(ヘッダではない)に "Report"というテキストを、最後に "これはレポートの終わりです"というテキストを前に印刷したいとします。もう一度、ヘッダーやフッターを印刷するときに、最後のページの最初と最後の冒頭にこのテキストのみを表示する必要はないことを明確にしたいと思います。JTableの前と後のテキストを追加する

どうすればいいですか?

+0

できません。 Actuall dublicate! – Vagelism

+0

ok。私はそれが削除されたと思う!ありがとうございました! – Vagelism

答えて

4

一連の適当なPrintableの場合は、java.awt.print.Bookの場合、hereのようになります。

補遺:JTableにはgetPrintable()の方法があります。ここに概要と簡単なタイトルがありますPrintable

PrinterJob pj = PrinterJob.getPrinterJob(); 
Book book = new Book(); 
book.append(new Title(), pj.defaultPage()); 
book.append(table.getPrintable(...), pj.defaultPage()); 
book.append(new EndPage(), pj.defaultPage()); 
pj.setPageable(book); 
pj.print(); 
... 
private static class Title implements Printable { 

    Font font = new Font("SansSerif", Font.PLAIN, 48); 

    @Override 
    public int print(Graphics g, PageFormat pf, int pageIndex) 
     throws PrinterException { 
     Graphics2D g2d = (Graphics2D) g; 
     g2d.translate(pf.getImageableX(), pf.getImageableY()); 
     g2d.setFont(font); 
     g2d.setColor(Color.black); 
     g2d.drawString("Report", 50, 200); 
     return Printable.PAGE_EXISTS; 
    } 
} 
+0

ありがとうございますが、まだ私のスキルのために進んだようです! 2行しか印刷できないように思えます。それはそうでなければなりませんか?もっとシンプルなもの? – Vagelism

+1

私は上記で詳しく述べました。プラットフォームの印刷プレビューを少し試してみる必要があります。 – trashgod

関連する問題