Javaプログラミング/Javaプログラミング関連情報

画面キャプチャーを作ろう(3ページ目)

Javaでフリーウェア作りに挑戦してみよう、というこのコーナー。第1回目は、画面キャプチャー・プログラムを作ってみましょう。

執筆者:掌田 津耶乃


画面のキャプチャーと保存のポイント


では、プログラムのポイントを簡単に説明しておきましょう。後述のソースコードと照らし合わせながら読むとよく理解できるでしょう。

●画面のキャプチャーはRobotで行う
Robot r2d2 = new Robot();
BufferedImage img = r2d2.createScreenCapture
 (new Rectangle(screenSize));

画面のキャプチャーは、java.awtパッケージのRobotクラスで行います。このcreateScreenCaptureメソッドを呼び出すと、キャプチャーしたイメージを返します。引数にはキャプチャーする領域を示すRectangleを渡します。なお、これは例外を発生する場合があるのでtry内で実行しましょう。

●JPEGファイルの保存はImageIO.writeで行う
int result = chooser.showSaveDialog(this);
File file = chooser.getSelectedFile();
if(result == JFileChooser.APPROVE_OPTION){
 try{
  ImageIO.write(img,"jpg",file);
 } catch(Exception e){}
}

JFileChooseを使うと、ファイル保存のダイアログを呼び出してFileを得ることができます。
ここではJFileChooserで保存ダイアログを呼び出し、そこからファイル名を取得してJPEGで保存する、という一連の処理を行っています。ダイアログの呼び出しは、JFileChooserのshowSaveDialogで行います。そこで選択したファイルはgetSelectedFileで取得可能です。そしてImageIO.writeを使い、保存するBufferedImage、ファイルフォーマット、Fileをそれぞれ引数で渡せば、指定のファイルに保存することができます。

●パネルの大きさの指定方法
this.setPreferredSize(psize);

意外に知らないのが、パネルの大きさを指定する方法です。何も考えずにJPanelをJScrollPaneに組み込むと、勝手にJPanelの大きさが調整されてしまい、スクロールバーが表示されません。これは「PreferredSize」と呼ばれるものを指定することで行えます。Swingコンポーネントの場合、setPreferredSizeで大きさを設定すると、その大きさでコンポーネントが表示されるようになります。なおAWTの場合はこのメソッドが用意されていません。この場合は、getPrefferedSizeメソッドをオーバーライドすることで同様のことができます。

この他にもよくわからない部分があるかもしれませんが、AWTとSwingの基本さえわかっていれば、それほど難しい処理ではないはずです。がんばって調べてみてください。

さて、これでごく簡単なキャプチャープログラムが出来上がりましたが、実際に動かしてみるとまだまだ機能不足であることがわかります。「指定した時間が経過したらキャプチャーしたい」「複数のキャプチャーが可能にしたい」「画面の一部分だけを保存したい」などなど、次から次へと欲が出てきたのではないでしょうか。いずれまた、機会があればこの改良版の作成にも挑戦していくことにしましょう。

  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます