マウスで絵を移動させてみよう
import java.applet.Applet;
import java.awt.*;
public class test_09 extends Applet
{
// 表示する絵を格納する箱の準備
Image img;
// マウスの位置と絵の大きさ格納用
int px,py,add_x,add_y;
// 絵をドラッグ中かの判定用フラグ
// 真ならば絵を掴んでいる状態になります
boolean flag=false;
public void init()
{
// 箱に絵を読み出して格納
img=getImage(getDocumentBase(),"gif/test0.gif");
}
public void paint(Graphics g)
{
// XY座標に絵を表示
g.drawImage(img,px,py,this);
}
// マウスのボタンが押され続けているときに呼ばれる関数です
public boolean mouseDrag(Event e,int x,int y)
{
// flagが真の時だけ以下の内容が実行されます
// flagは絵を掴んでいる時だけ真になります
if(flag)
{
// 現在のマウスの座標を絵の座標に代入します
px=e.x;
py=e.y;
// 絵を描き直します
repaint();
}
return true;
}
// マウスのボタンが押されたときに実行される関数です
public boolean mouseDown(Event e,int x,int y)
{
// 表示する絵の大きさを取得します
add_x = img.getWidth(this);
add_y = img.getHeight(this);
// マウスのボタンが押されたときの座標が
// 絵の上かどうかを判定
if(px<=x && x<=(px+add_x) && py<=y && y<=(py+add_y))
{
// 絵の上の場合はflagを真に変更し、絵をドラッグ中にする
flag=true;
}
return true;
}
// マウスのボタンが放されたときに実行される関数
public boolean mouseUp(Event e,int x,int y)
{
// ドラッグ中フラグを偽(false)にする
// これによって、絵が移動しなくなる
flag =false;
return true;
}
}
JAVAへ戻る
トップへ戻る