- PR -

Eclipseを使ってペイントツールを作りたい!!

1
投稿者投稿内容
かず
会議室デビュー日: 2005/06/14
投稿数: 9
投稿日時: 2005-12-16 10:28
いつもお世話になってます。
java:swtを使用しペイントツールを作りたいと思っています。

環境はEclipse3.0.1です。

使用ファイルは
Ctl.java
Img.java
の二つです。
Ctl.javaでjpgファイルロード→別窓で表示し、そこで自由に線を描くというところまでできました。
線を描くというのはImg.javaでMouseListener,MouseMoveListenerを使って左ドラッグで線を描けるようにしました。

public Img(int sx, int sy) {
sh = new Shell();
sh.setLayout(new FillLayout(SWT.VERTICAL));
sh.setText("ImageField");
lab = new Label(sh, SWT.NONE);
lab.addMouseListener(myMouseListener);
lab.addMouseMoveListener(myMouseMoveListener);
sh.setLocation(sx,sy);
sh.setSize(100, 300);
}
     画像をセット&取得をし

MouseMoveListener myMouseMoveListener = new MouseMoveListener() {
public void mouseMove(MouseEvent e) {
if (e.stateMask == SWT.BUTTON1) {
x2 = e.x;
y2 = e.y;
GC gc=new GC(lab);
gc.drawLine(x1,y1,x2,y2);
gc.dispose();
x1=e.x;
y1=e.y;
}
}
};

線を描写するところまではできたのですが、Label上に描いているためか、保存ができません(保存をしても線が消えた状態でなっています)。自分で描いた線を「画像」として保存したいのですが、どのようなプログラムを書けばよろしいのでしょうか。

今のところ全くのお手上げ状態なので、ここに書かせていただきました。よろしくお願いします。
かず
会議室デビュー日: 2005/06/14
投稿数: 9
投稿日時: 2005-12-16 11:25
どうもです。なんとか解決できました

GC gc = new GC(lab.getImage());
gc.drawLine(x1,y1,x2,y2) ;
gc.dispose();
lab.setImage(lab.getImage());

とその場で毎回labelに描いたものをロードする形にしました。毎回更新されているので少し重くなりますがとにかく描けるようになったのでよかったです
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)