Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

コンソールに何故か2度表示される問題について

印刷処理(A4一枚)のコードを書いていますが、実際に印刷
してみると問題なくA4用紙1枚だけ印刷されるのですが、
コンソールには以下のような事柄が2度表示されます。

page:0
A4 Size(スコアシー
ト):451.3322834645669,697.9181102362205
page:0
A4 Size(スコアシー
ト):451.3322834645669,697.9181102362205
page:1

コードを何度見直してもどこかでループしているような箇
所は見あたリません。
しかしながら同じ処理を繰り返しているわけですから印刷
に2倍の時間を要している事は間違いありません。
どうか御教授お願いします。


以下が印刷コードです。

public class ScoreSheetPrint implements Printable{
    
    private ScoreSheetLine ssl = new 
ScoreSheetLine();
    
    public int print(Graphics g, PageFormat pf, 
int page)    throws PrinterException {
        // TODO Auto-generated method stub
        System.out.println("page:"+ page);    
        if (page >= 1) return 
Printable.NO_SUCH_PAGE;
        Graphics2D g2 = (Graphics2D)g;
        g2.translate(pf.getImageableX(), 
pf.getImageableY());
        //コンソール
        System.out.println("A4 
Size:"+pf.getImageableWidth()+","+pf.getImageableHei
ght());
        //印刷用(A4サイズ)の表示
        ssl.paintComponent(g2);
        return Printable.PAGE_EXISTS;
    }
}

3

回答

7878

閲覧

3件の回答

評価

0

そのメソッドが2回呼ばれてんじゃないの。
デバッグできないなら
staticなカウンターでもつけて何回呼ばれてるから見てみればいいんじゃない

評価

0

このあたり、読んでみよう。

https://docs.oracle.com/javase/jp/1.5.0/guide/2d/spec/j2d-
print.html

評価

0

回答ありがとうございます。
よく理解が出来ました。
今後はよく調べてから質問させていただきます。
ありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。