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

更新日:2005年12月10日

画面キャプチャーを作ろう

編集部 All About 写真

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

FreeCaptureのダウンロード


ダウンロード開始


FreeCaptureのソースコード



●FreeCaptureクラス(FreeCapture.java)
package jp.tuyano;

import java.awt.*;
import java.awt.image.BufferedImage;

public class FreeCapture {
 
 public static void main(String[] args){
  FreeCapture fc1 = new FreeCapture();
  fc1.doCapture();
 }

 public void doCapture(){
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  try{
   Robot r2d2 = new Robot();
   BufferedImage img = r2d2.createScreenCapture(new Rectangle(screenSize));

   CaptureFrame jf1 = new CaptureFrame(img);
   jf1.setTitle("Capture screen");
   jf1.setSize(300, 300);
   jf1.setLocation(50,50);
   jf1.setVisible(true);
   Toolkit.getDefaultToolkit().beep();
  } catch(Exception e){}
 }

}


●CaptureFrameクラス(CaptureFrame.java)
package jp.tuyano;

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;


public class CaptureFrame extends JFrame {
 private static final long serialVersionUID = 1L;
 private CapturePanel jp1;
 private JScrollPane js1;
 
 public CaptureFrame(BufferedImage img){
  super();
  jp1 = new CapturePanel(img);
  this.getContentPane().setLayout(new BorderLayout());
  js1 = new JScrollPane(jp1);
  this.getContentPane().add(js1,BorderLayout.CENTER);
  this.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    jp1.saveJPEG();
    System.exit(0);
   }
  });
 }
 
}


●CapturePanelクラス(CapturePanel.java)
package jp.tuyano;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.*;

public class CapturePanel extends JPanel {
 private static final long serialVersionUID = 1L;
 private BufferedImage img;
 private JFileChooser chooser;
 private Dimension psize;
 
 public CapturePanel(BufferedImage img){
  super();
  this.img = img;
  psize = new Dimension(img.getWidth(),img.getHeight());
  this.setPreferredSize(psize);
  chooser = new JFileChooser();
 }
 
 public void paint(Graphics g) {
  if (img != null) {
   g.drawImage(img,0,0,this);
  }
 }
 
 public void saveJPEG(){
  int result = chooser.showSaveDialog(this);
  File file = chooser.getSelectedFile();
  if(result == JFileChooser.APPROVE_OPTION){
   try{
    ImageIO.write(img,"jpeg",file);
   } catch(Exception e){}
  }
 }
}

(執筆者:掌田 津耶乃)

1 2 3 4
  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

編集部 All About

住まいには、人の個性がよく現れるもの。同じ空間をどのように使うかで、雰囲気も、快適さも大きく変わってくる。ここでは、「建築家と家を建てる」ガイド の川畑博哉氏が厳選した10軒を紹介し、建築家それぞれのこだわりのポイントを紹介しよう。建築のプロたちが考え出した、マネしたくなるアイデアが満載! さぁ、いますぐチェック!

人気Javaプログラミングランキング

Powered by 価格.com

デジタル関連コミュニティ

北欧好きが、愛用の北欧モノを見せ合うコミュニティ

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

ショッピングカタログ

All About ウェブマガジン

女性向け

雨が楽しくなる!レイングッズ15

男性向け

マネしたくなるアイデア住宅

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック

知識・経験を生かして、記事を書いてみませんか?