• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Swingで印刷)

Swingで印刷

このQ&Aのポイント
  • Swingで作ったボタンを押したらリストに表示されている文字が印刷される方法を考えています。
  • リストに表示された文字を座標に印字する方法を知りたいです。
  • TestSampleクラスでPrintボタンを押すと、PrObjectクラスのprintメソッドが呼ばれて印刷が実行されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

考え方はいたってシンプルで印刷する文字列が可変であるようにすれば良いだけです。今回のソースで考えるとPrObjectクラスに文字列のメンバを持たせ、外部から変更出来るようにします。そして、文字列が複数の場合も対応出来るように変更します。 簡単に変更例を書いておきます。理解出来たら自分のやりたいように変更してみて下さい。 class PrObject implements Printable{ private String[] printStrings = null; // メンバ追加 public void setPrintStrings(String[] strs){printStrings = strs;} // メソッド追加 public int print(Graphics g,PageFormat fmt,int pageIndex){ if(pageIndex>0){ return Printable.NO_SUCH_PAGE; } else { Graphics2D g2d=(Graphics2D)g; if(printStrings != null){ // ここから変更 for(int i = 0; i < printStrings.length; i++){ g2d.drawString(printStrings[i],100,200 + (g.getFontMetrix().getHeight() * i)); }} // ここまで return Printable.PAGE_EXISTS; }}}} -- 変更部抜粋 --- PrObject pobj=new PrObject(); pobj.setPrintStrings(str); // 追加 PrinterJob pjob=PrinterJob.getPrinterJob();

akigiri0213
質問者

補足

お返事ありがとうございます! おかげさまでイメージが沸きました(?) んが、コンパイルするとエラーが出ます。 --------------------------- シンボルを解決できません シンボル:変数str 場所:SwingTestクラス pobj.setPrintStrings(str); --------------------------- pobj.setPrintStrings(str)でリストの値をセットして、class PrObjectに渡している…というのはわかるのですが… なぜシンボルがないとか言われるんですかね… アホゥな質問で申し訳ないです(--;) 後々、(ファイル開いて、それをリストに追加)model.addElement(str)を使ってリスト表示したものを印刷出来たらなと考えています。 その場合もsetPrintStrings(str)でいいのでしょうか? それともこの場合はsetPrintStrings(model)になるのでしょうか? 実際試してみたら適用できませんとエラーが出ました。 よろしければもう少しヒントをお願いします。

その他の回答 (1)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

#1です。 ソースをよく見ていなかったのでstrのスコープ(有効範囲)を正しく把握していませんでした。 >String[] str={"東京都","大阪府"}; を >public TestSample(){...} の外に出して下さい。こんな感じで・・・ String[] str={"東京都","大阪府"}; public TestSample(){ 略 }

akigiri0213
質問者

お礼

すいません出来ました; ありがとうございました! 書き方間違えていました;

akigiri0213
質問者

補足

何度も申し訳ないです(--;) コンパイルは成功しましたが、いざ印刷ボタンを押したらこんなの出ました。 java.awt.print.PrinterException: No page or printable exists. これはデータが無い、渡されていないと解釈してよいのでしょうか?

関連するQ&A