// ====================================================================
//            JAVA APPLET PROGRAM BASE SOURCE     BakuretuKen          
// ====================================================================

import java.applet.Applet;
import java.awt.*;
import java.net.*;
import java.awt.image.*;
import java.util.StringTokenizer;
import java.net.MalformedURLException;
import java.io.*;

// ===============================================================

public class NoDB extends Applet {
	
	// グローバル変数
	int oldx, oldy; // １つ前のマウス座標
	
	// ダブルバッファリング用の宣言
	Graphics bg;
	Image backimage;
	
	// マウスボタンが現在押されているかどうか？
	boolean isDown;
	
	// -----------------------------------------------------------
	public void init() {  // 初期処理
		
		isDown = false; // 初期状態でマウスボタンは押されていない
		
		// ダブルバッファリング初期宣言
		backimage = createImage( 640, 480 );
		bg = backimage.getGraphics();
		
		// 裏画面の背景を最初白で塗りつぶす。
		bg.setColor(Color.white); // 裏画像の作画ペンの色を白に
		bg.fillRect( 0, 0, 640, 480); // 白で塗りつぶし
	
	} // init()
	
	// -----------------------------------------------------------
	public void paint(Graphics g) {  // 作画処理
		
		// 裏画像を表に転送
		g.drawImage( backimage, 0, 0, null );
		
	} // paint()
	
	// -----------------------------------------------------------
	public void update(Graphics g) {  // 再作画処理
		paint( g );
	} // update()
	
	// -----------------------------------------------------------
	public boolean mouseDown(Event e, int x, int y) {  // マウスダウン
		
		isDown = true; // マウスボタンが押された
		oldx = x; oldy = y; // 押された場所のマウス座標を保存
		
		return true;
	} // mouseDown()
	
	// -----------------------------------------------------------
	public boolean mouseUp(Event e, int x, int y) {  // マウスアップ
		
		isDown = false; // マウスボタンが離された
		
		return true;
	} // mouseUp()
	
	// -----------------------------------------------------------
	public boolean mouseDrag(Event e, int x, int y) { //  マウス移動
		// マウスボタンが押されている状態時のみ、以下の処理を行う
		if (isDown) { 
			bg.setColor(Color.black); // 裏画像の作画ペンの色を黒に
			// マウスが押された場所から現在の場所まで線を引く
			bg.drawLine( oldx, oldy, x, y);
			oldx = x; // 現在のマウスのX座標を oldx に保存
			oldy = y; // 現在のマウスのY座標を oldy に保存
			repaint(); // 作画
		}
		return true;
	} // mouseDrag()

// ===============================================================
}  // End of Class

