|
|
プログラム ソースリスト 「らくがきボード」 |
"/*" と "*/" で囲まれた部分や "//" より右はコメントで、
プログラムの動きには関係がありません。
このページでは緑で表示しています。
/* ---------------------------------------------------------------------------------------------- paint.java 落書きボード ver. 1.00 (JDK 1.02) ueyama@infonet.co.jp 2000.07.25 ---------------------------------------------------------------------------------------------- */ import java.applet.*; import java.awt.*; import java.util.*;
| public class paint extends Applet | |
| { | |
| int PS=6; | // ペンの太さ |
| int PenSize[]={4,6,10,14,18,24}; | // ペンの太さの種類 |
| int PenColor=0; | // ペンの色 |
| Color Col[]={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==(PenSize[n])? Col[4]: Col[12]); | |
| gr.drawRect(361+n*30, 370, 28, 28); | |
| gr.setColor(Col[PenColor]); | |
| 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(Col[i]); | |
| g.fillRect(i*30, 370, 30, 30); | |
| } | |
| g.setColor(Col[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(Col[6]); | // 消しゴムの表示 |
| g.fillRect(541, 370, 29, 29); | |
| g.setColor(Col[12]); | |
| g.fillOval(541+7, 370+6, 18, 18); | |
| } | |
| public boolean mouseDown(Event e, int x, int y) | // マウスがクリックされたときの処理 |
| { | |
| if(y>370) | |
| { | |
| if(x<360) | // ペンの色の変更 |
| { | |
| PenColor = 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(Col[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; | |
| } | |
| } |
情報処理概論 に戻る 講義資料 に戻る プログラムを作る (1) 「らくがきボード」に戻る 戻る
2000.07.25 ueyama@infonet.co.jp