2012-01-15 6 views
1

私はnetbeansを使用しており、jpanelを印刷するコードがあり、正常に動作します。しかし、その出力は画像としてjpanelを出力することです。これは、jpanelのサイズである背景に色あせた灰色をプリントするので、私にとって理想的ではありません。私は多くのラベルで構成されるjpanelにテキストを印刷したいだけです。画像ではなくテキストとしてjpanelの内容を印刷する方法はありますか?jpanelの内容をテキストとして出力する方法は?

これは、私はこれは私が印刷する必要があるのJPanelのPrintScreenをである私のJPanelの内容

PrinterJob job = PrinterJob.getPrinterJob(); 
    job.setJobName("jPanel13"); 

    job.setPrintable (new Printable() {  
     public int print(Graphics pg, PageFormat pf, int pageNum){ 
      if (pageNum > 0){ 
      return Printable.NO_SUCH_PAGE; 
      } 

      Graphics2D g2 = (Graphics2D) pg; 
      g2.translate(pf.getImageableX(), pf.getImageableY()); 
      jPanel13.paint(g2); 
      return Printable.PAGE_EXISTS; 
     } 
    }); 
    boolean ok = job.printDialog(); 
    if (ok) { 
     try { 
       job.print(); 
     } catch (PrinterException ex) { 

     } 

を印刷するのに使用されるコードです。私のプログラムでは、ユーザーがjlabelsのテキスト値を変更することができます。 jlabelsのテキストが印刷され、空白行にフォームが入力されます。フォームにはすでに書いてあります。それは私が印刷時に記入する空白の行だけです。そのため、ラベルがそのように配置されていることが重要です。

http://i.stack.imgur.com/kPKWe.jpg

enter image description here

+0

このJPanelの画像を表示して、あなたが何をしようとしているのかを知ることができますか? –

+0

返信ありがとう、私はちょうど私の投稿を編集しました – meebee

+0

私はあなたのオリジナルの質問を編集し、あなたのイメージをアップロードして、人々が別のサイトに行かなくても表示されるようにしました。自分自身で、この問題を解決しなければならないのなら、このような問題を解決するために作成されたものだと確信していますので、フォーム作成ライブラリを検索したいと思います。 GUIを使用して、使用されるように構築されていない方法で解決します。 –

答えて

3

JPanel背景が唯一の問題である場合は、代わりにpaint()のそれにprint()を呼び出し、(デフォルトはちょうどpaintComponent()を呼び出して)何もしないことprintComponent()を上書きすることができます。

代わりに、印刷中に背景色を白に設定するだけです。

+0

お返事ありがとうございます、それは役に立ちます。私はこれを試みます。 – meebee

関連する問題