- - PR -
JFrameのハードコピーの方法?
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2001-11-16 19:26
またまたお世話になります。
画面のハードコピーを取りたい。 MyFrame extents JFrame{ ***_actionPerformed(e){ PrintJob pj = this.getToolkit().getPrintJob(this, "print1", null); if( pj != null){ Graphics g = pj.getGraphics( ); this.print(g); g.dispose( ); pj.end(); } } でタイトルバーとか枠が印刷できません。 どうやって画面のハードコピーを取りますか? 有効な手段がありましたらぜひ教えて下さい。 よろしくお願いします。 |
|
投稿日時: 2001-11-17 12:58
ちょっとひねくれた方法ですが、フレームの中にフレームを表示して、親フレームを印刷すれば子フレーム全体が印刷されます。ただし、JInternalFrameとJDesktopPaneを使用する必要があると思います。
1. 新しいJFrameを生成してJDesktopPaneをaddする 2.印刷したいJFrameをJInternalFrameに変換 3.このJInternalFrameをJDesktopPaneに貼り付ける。(ここで大事なのはサイズをJDesktopPaneよりやや小さめにする) 4.最後に、JDesktopPaneを保持しているJFrameを印刷すればJInternalFrameのタイトルと縁がちゃんと印刷されます。 問題点:
あまり正攻法じゃないと思いますが、役にたったでしょうか? [ メッセージ編集済み 編集者: H2 編集日時 2001-11-17 13:01 ] |
|
投稿日時: 2001-11-19 10:47
H2さん、レスありがとうございます。
メインフレームの印刷が問題点というとおりで、ハードコピーが取れないです。 そしたら、Javaで表示ウインドウうのカスタム化方法が無いですかな? |
|
投稿日時: 2001-11-19 12:45
UIManager.setLookAndFeel()を使えばフレームのデザインをかえられます。
そうそう、printAll()というメソッドもあるようですが、タイトルバーなどはプリントしてくれませんでした。 さらにひねくれた方法です。Windows上であれば"Print Screen"キーで画面をクリップボードに写せますよね。これは、Windows上にそういったコマンドがあるからですよね。JavaからこのPrint Screenコマンドを呼び出して、クリップボードに移った画像を取り出し、現在のJFrameの場所をサイズを切り取ればフレーム全体が印刷できるような気がします。(注:気がするなんのでできるかどうかはわかりません。) ひねくれすぎで、プラットフォームに依存しちゃうのでちょっとお勧めできない方法ですけどね。(笑) [ メッセージ編集済み 編集者: H2 編集日時 2001-11-19 13:23 ] |
1
