参考ページ
http://d.hatena.ne.jp/pyridoxin/20071231/1199065420
実際に保存する内容は、これになるらしい
private BufferedImage canvas;
マウスの動きに応じて線描
マウスイベントを受け取るには
import java.awt.event.MouseEvent;
import javax.swing.event.MouseInputListener;
class *** extends JPanel implements MouseMotionListener{ //リスナー実装
//リスナー登録
***(){
addMouseMotionListener(this);
addMouseListener(this);
}
//イベントのオーバーライド
@Override
public void mouseEntered(MouseEvent e) {} //範囲にマウスが入った
public void mouseExited(MouseEvent e) {} //範囲からマウスが出た
public void mouseMoved(MouseEvent e) {} //範囲内でマウスが動いた
public void mouseDragged(MouseEvent e){} //範囲内で、クリックしたままマウスが動いた
public void mousePressed(MouseEvent e) {} //マウスボタンを押した瞬間
public void mouseReleased(MouseEvent e) {} //マウスボタンを離した瞬間
public void mouseClicked(MouseEvent e) {} //マウスボタンをクリックした瞬間
}
で、これを描画する
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D)g; //awt
if (canvas==null)
canvas = (BufferedImage)super.createImage(getWidth(), getHeight());
Graphics2D createG =canvas.createGraphics();
createG.setBackground(Color.WHITE);
createG.drawImage(canvas, 0, 0, null);
//線描
Line2D.Double line = new Line2D.Double(start, end);
createG.draw(line);
g2d.drawImage(canvas, 0, 0, null);
createG.dispose();
}
PR