マウスで絵を移動させてみよう

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;
		}
	}


上の内容を実行する

上のソース(test_09.java)

-----------------------------------
ballJAVAへ戻る
ballトップへ戻る