//
/* ----------------------------------------------------------------------------------------------
paint.java 落書きボード ver. 1.00 (JDK 1.02)
ueyama@infonet.co.jp 2000.11.17
---------------------------------------------------------------------------------------------- */
import java.applet.*;
import java.awt.*;
import java.util.*;
public class paint extends Applet
{
int PS=6; // 現在のペンの太さ
int PC=0; // 現在のペンの色
int PenSize[]={4,6,10,14,18,24}; // ペンの太さの種類
Color PenColor[]={Color.black, Color.blue, Color.cyan, Color.darkGray, Color.gray,
Color.green, Color.lightGray, Color.magenta, Color.orange,
Color.pink, Color.red, Color.yellow, Color.white}; // ペンの色の種類
Graphics gr;
public void init() // 初期設定
{
setBackground(Color.white);
gr=getGraphics();
}
public void disp_pen(int n) // ペンのサイズの表示
{
int p=PenSize[n];
gr.setColor((PS==p)? PenColor[4]: PenColor[12]); // 現在のペンサイズは灰色に
gr.drawRect(361+n*30, 370, 28, 28); // 正方形を描く
gr.setColor(PenColor[PC]);
gr.fillOval(360+n*30+15-p/2, 370+15-p/2, p, p); // 円を描く
}
public void paint(Graphics g) // 画面の表示
{
int i;
g.clearRect(0,0,600,400);
for(i=0; i<12; i++) // カラーパレットの表示
{
g.setColor(PenColor[i]);
g.fillRect(i*30, 370, 30, 30);
}
g.setColor(PenColor[0]);
for(i=0; i<20; i++) g.drawRect(i*30, 369, 30, 30); // 正方形を描く
for(i=0; i< 6; i++) disp_pen(i); // ペンの表示
g.drawLine(599, 370, 570, 399); // クリアエリアの斜線
g.setColor(PenColor[6]); // 消しゴムの表示
g.fillRect(541, 370, 29, 29);
g.setColor(PenColor[12]);
g.fillOval(541+7, 370+6, 18, 18);
}
public boolean mouseDown(Event e, int x, int y) // マウスがクリックされたときの処理
{
if(y>370)
{
if(x<360) // ペンの色の変更
{
PC = x/30;
for(int i=0; i<6; i++) disp_pen(i);
}
else if(x<540)
{
PS = PenSize[(x-360)/30]; // ペンの太さの変更
for(int i=0; i< 6; i++) disp_pen(i); // ペンの表示
}
else if(x<570) gr.setColor(PenColor[12]); // 消しゴム
else gr.clearRect(0, 0, 600, 369); // 画面のクリア
}
return true;
}
public boolean mouseDrag(Event e, int x, int y) // マウスがドラッグされたときの処理
{
if(y < 370-PS/2) gr.fillOval(x-PS/2, y-PS/2, PS, PS); // 円を描く
return true;
}
}
//戻る