Microsoft PowerPoint - prog10.ppt

Similar documents
Microsoft PowerPoint - prog10.ppt

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint ppt

JAVA入門

Microsoft PowerPoint prog1_doc2x.pptx

<4D F736F F F696E74202D AC C8899E D834F E >

Microsoft PowerPoint prog1_doc2.pptx

Microsoft PowerPoint - prog03.ppt

以下に java.awt.graphics クラスの主なメソッドを示す (Graphics クラスの ) メソッド drawline(int x1, int y1, int x2, int y2) drawrect(int x, int y, int width, int height) fillr

Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint - OOP.pptx

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

アプレットⅠ

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

Java 2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q 2.

Java演習(2) -- 簡単なプログラム --

Microsoft PowerPoint - prog11.ppt


問1

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

Microsoft PowerPoint - prog12.ppt

Microsoft PowerPoint - prog04.ppt

Chapter 20. [ ] ; [ ] = new [ ] ; Color colors [ ] = new Color[ 20 ]; // 20 Button operations [ ] = new Button[ 10 ]; // 10 colors[ 3 ] = new Color( 1

untitled

Microsoft PowerPoint - prog13.ppt

PowerPoint Presentation

Microsoft PowerPoint - prog13.ppt

表示の更新もそういた作業のひとつに当たる スレッドの使用アニメーション アニメーションやシミュレーションなどは画面の更新が一定のタイミングで行われていく この連続した画面の更新をスレッドを利用して行う しかし paint() メソッドを直接呼び出して表示を更新することはできない その理由

2 p.2 2 Java > javac Hello0.java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.j

Java言語 第1回

Microsoft PowerPoint - prog08.ppt

Java言語 第1回

アプレットの作成

< F2D82518CC282CC D2E6A7464>

Java言語 第1回

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

Microsoft PowerPoint ppt

Microsoft PowerPoint - prog08.ppt

Graphical User Interface 描画する

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

< F2D B838A835882CC8CF68EAE2E6A7464>

< F2D F B834E2E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

< F2D834F838C A815B A CC>

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

< F2D89BA8EE882C E6A7464>

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

piyo0702a.rtfd

Color.cyan, Color.yellow, Color.pink, Color.orange, Color.white, Color.black, Color.gray, Color.darkGray, Color.lightGray ; Button barray [ ] = new Bu

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

次の演習課題(1),(2)のプログラムを完成させよ

Microsoft PowerPoint - 第1回.pptx

< F2D92DE82E8914B82CC977088D32E6A7464>

Microsoft Word - Java3.DOC

I 4 p.2 4 GUI java.awt.event.* import /* 1 */ import mouseclicked MouseListener implement /* 2 */ init addmouselistener(this) this /* 3 */ this mousec

r2.dvi

< F2D E E6A7464>

< F2D B825082CC96E291E82E6A7464>

< F2D82B682E182F182AF82F12E6A7464>

ガイダンス

< F2D825282CC947B909482CC A815B83682E6A>

< F2D8EA CE909482CC92EA82852E6A7464>

2

II Java :30 12:00 I. I IV II. III. IV. ( a d) V. : this==null, T == N A ActionListener C class D actionperformed G getsource I implements K

< F2D A838B838D96402E6A7464>

< F2D A839382CC906A2E6A7464>

オブジェクト指向プログラミング・同演習 5月21日演習課題

Chapter JDK KeyListener keypressed(keyevent e ) keyreleased(keyevent e ) keytyped(keyevent e ) MouseListener mouseclicked(mouseeven

Java言語 第1回

Prog2_11th

KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped

GUIプログラムⅣ

デジタル表現論・第6回

JavaプログラミングⅠ

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

AWT setcolor, drawstring Java AWT Abstract Window Toolkit Graphics AWT import import java.awt.* ; // AWT Graphics import java.awt.graphics; // AWT Gra

r3.dvi

プログラミングA

Microsoft PowerPoint - chap10_OOP.ppt

PowerPoint プレゼンテーション

Java言語 第1回

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

ガイダンス

ガイダンス

// ステージを設定します stage.setscene(scene); stage.settitle(" キャンバス "); // ステージを表示します stage.show(); public static void main(string[] args) launch(args); キャンバス

手書認識 グラフ描画 Step2-2 手書認識 : 認識結果を PaintPanel で描画する < 属性付き文字列 AttributedString> 標準出力では分かりにくいうえに認識結果を使えないので 認識するごとに PaintPanel に文字を描画することにする ここで 数式はただの文字列

PowerPoint プレゼンテーション

:30 12:00 I. I VII II. III. IV. ( a d) V. VI : this==null, T == N A ActionListener A addactionlistener C class D actionperforme

Applet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Programming-C-9.key

I. (i) Java? (A). 2Apples (B). Vitamin-C (C). Peach21 (D). Pine_Apple (ii) Java? (A). Java (B). Java (C). Java (D). JavaScript Java JavaScript Java (i

Prog2_9th

JavaプログラミングⅠ

ガイダンス

ソフトウェア開発方法論2

Transcription:

プログラミング言語 3 第 10 回 (2007 年 12 月 03 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/40 1

今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 12 月 03 日分と書いてある部分が 本日の教材です 本日の内容 前回の課題の解答 Java アプレット 基本的な画像線画 マウスイベントの検知 3/40 前回の課題の解答 4/40 2

前回の課題その 1:Sample09a.java をコンパイルなさい その後 test.txt というファイルがある場合と無い場合 それぞれの場合に対して実行し 結果を報告しなさい 5/40 test.txt がある場合 import java.io.*; コンソールに END と表示される public class Sample09a{ public static main(string args[]){ try{ try{ FileReader fr fr = new new FileReader("test.txt"); 1 tryの中が実行さ catch(filenotfoundexception e){ e){ れる エラーの発 System.out.println("Error:"+ e); e); 生も監視される return; System.out.println("END"); 2 エラーは発生しな 3 普通に実行される かったので 実行されない 6/40 3

test.txt がない場合 1 tryの中が実行され import java.io.*; る エラーの発生も public class Sample09a{ 監視される 2 test.txtがないので public static main(string args[]){ try{ エラーが発生 try{ FileReader fr fr = new new FileReader("test.txt"); catch(filenotfoundexception e){ e){ System.out.println("Error:"+ e); e); return; 2 エラーが発生したので 対応す る例外処理が実行される System.out.println("END"); 今回はFileNotFoundException なので ここが実行される 3 エラーの原因を出力した後 return によってプログラムの実行が停止する コンソールに Error:java.io.FileNotFoundException: test.txt (No such file or directory) と表示される 7/40 前回の課題その 2:Sample09b.java をコンパイルなさい エラーが発生するので そのエラーを報告しなさい 8/40 4

Sample09b.java import java.io.*; FileReader は catch 例外を起こす可能性があるのに 例外処理が書かれていない! public class Sample09b{ public static main(string args[]){ FileReader fr fr = new new FileReader("test.txt"); コンソールに Sample09b.java:7: 例外 java.io.filenotfoundexception は報告されません スローするにはキャッチまたは スロー宣言をしなければなりません FileReader fr = new FileReader("test.txt"); ^ エラー 1 個 と表示される catch 例外を起こす可能性がある命令は 例外処理を書く必要がある 9/40 前回の課題 その 3: Sample09c.java と Sample09d.java について 次に答えなさい それぞれを test.txt が有る場合と無い場合で実行し 結果を答えなさい 上記のことが どのような流れで処理された結果 起きているのか 説明しなさい 10/40 5

Sample09c.java で test.txt がある場合 コンソールに FINALLY END と表示される import java.io.*; 1 public class Sample09c{ public static main(string args[]){ try{ try{ FileReader fr fr = new new FileReader("test.txt"); 2 catch(filenotfoundexception e){ e){ System.out.println("Error:"+ e); e); 3 finally{ System.out.println("FINALLY"); System.out.println("END"); 4 実行される test.txt があるので エラーは発生しない エラーがないので実行されない finally はエラーの有無にかかわらず 必ず実行される 11/40 Sample09c.java で test.txt がない場合 コンソールに Error:java.io.( 略 ) FINALLY END と表示される import java.io.*; 1 public class Sample09c{ public static main(string args[]){ try{ try{ FileReader fr fr = new new FileReader("test.txt"); 2 catch(filenotfoundexception e){ e){ System.out.println("Error:"+ e); e); 3 finally{ System.out.println("FINALLY"); System.out.println("END"); 4 実行される test.txt がないので エラーが発生 エラーがあったので実行される! finally はエラーの有無にかかわらず 必ず実行される 12/40 6

Sample09d.java で test.txt がある場合 コンソールに FINALLY END と表示される import java.io.*; 1 public class Sample09d{ public static main(string args[]){ try{ try{ FileReader fr fr = new new FileReader("test.txt"); catch(filenotfoundexception e){ 2 e){ System.out.println("Error:"+ e); e); return ; 3 finally{ System.out.println("FINALLY"); System.out.println("END"); 4 実行される test.txt があるので エラーは発生しない エラーがないので実行されない finally はエラーの有無にかかわらず 必ず実行される 13/40 Sample09d.java で test.txt がない場合 コンソールに Error:java.io.( 略 ) FINALLY と表示される import java.io.*; 1 test.txtがないので public class Sample09d{ エラーが発生 public static main(string args[]){ try{ try{ FileReader fr fr = new new FileReader("test.txt"); 2 エラーがあった catch(filenotfoundexception e){ e){ ので実行される! System.out.println("Error:"+ e); e); return ; returnが実行される前に finally{ System.out.println("FINALLY"); 3 finallyは エラーの有無に System.out.println("END"); かかわらず returnが実行されて終了必ず実行される 14/40 7

前回の課題 その 4: Sample09h.java について 次に答えなさい 実行結果と そのようになった理由を報告すること 1. そのままコンパイル 実行した場合 2. プログラム中 int int02=5; を int int02=100; にして コンパイル 実行した場合 3. プログラム中 int int02=5; を int int02=0; にして コンパイル 実行した場合 15/40 その 1 public class Sample09h{ public static main(string args[]){ int[] int01 = {1,2,3,4,5,6,7,8,9,10; int int int02=5; 02=5; try{ try{ System.out.println(500/int02); System.out.println(int01[int02]); catch(exception e){ e){ System.out.println("Error:"+ e); e); return; コンソールに 10 6 と表示される 500/5 を実行して 結果を出力 int01[5] を出力 16/40 8

public class Sample09h{ public static main(string args[]){ int[] int01 = {1,2,3,4,5,6,7,8,9,10; int int int02=100; その 2 コンソールに 5 Error:java.lang.ArrayIndexOutOfBoundsException: 100 と表示される try{ try{ System.out.println(500/int02); System.out.println println(int int01[ 01[int int02]); 02]); catch(exception e){ e){ System.out.println("Error:"+ e); e); return; 500/100 を実行して 結果を出力 配列に 100 番目の要素は無いので エラーが発生! エラーが発生したので このぶぶんが実行される 17/40 その 3 コンソールに Error:java.lang.ArithmeticException: / by zero と表示される public class Sample09h{ public static main(string args[]){ int[] int01 = {1,2,3,4,5,6,7,8,9,10; int int int02=0; 02=0; try{ try{ System.out.println println(500/ (500/int int02); 02); System.out.println(int01[int02]); catch(exception e){ e){ System.out.println("Error:"+ e); e); return; 0 での除算を行おうとしたので エラーが発生! 直ちに実行 エラーが発生したので この部分が実行される 例外処理が終わっても もとの処理に戻ることは無いため System.out.println(int01[int02]); は実行されない 18/40 9

その 3 改 このプログラムでは catch の中の return が無くても 結果は一緒になる public class Sample09h{ public static main(string args[]){ int[] int01 = {1,2,3,4,5,6,7,8,9,10; int int int02=0; 02=0; try{ try{ System.out.println println(500/ (500/int int02); 02); System.out.println(int01[int02]); catch(exception e){ e){ System.out.println("Error:"+ e); e); 0 での除算を行おうとしたので エラーが発生! 直ちに実行 エラーが発生したので この部分が実行される 例外処理が終わっても もとの処理に戻ることは無いため System.out.println(int01[int02]); は実行されない 19/40 Java アプレット 20/40 10

Java とアプレット Java のプログラム 単独で動作するプログラム web browser 上で動作するプログラム (applet) applet の作り方 1. applet のための Java プログラムを書く 2. コンパイルする 3. applet を埋め込む html ファイルを書く 4. web browser で html を読み込み applet を実行する 21/40 実行例 (1/4) 1. applet の為の Java プログラムを書く import java.applet.applet; import java.awt.graphics; public class JavaApplet01 extends Applet{ public paint(graphics g){ g){ g.drawstring("hello World",30,40); appletの場合 mainを含むクラスは必要ありません java.applet と java.awt というパッケージを利用しています ファイル名はJavaApplet01.javaです 22/40 11

実行例 (2/4) 2. コンパイルする javac JavaApplet01.java コンソールで 何時も通りにコンパイルします JavaApplet01.class ができます 23/40 実行例 (3/4) 3. applet を埋め込む html ファイルを書く <applet code="javaapplet01.class" width=250 height= 250> 250> </applet> code で class ファイル名を指定 width と height で browser 上に表示するときのサイズを指定 テキストエディタで書いて下さい 拡張子は html もしくは htm としましょう 拡張子以外は自由につけてくだい 今回の例では Sample10.htmとしました 24/40 12

実行例 (4/4) 4. web browser で html を読み込み applet を実行する 普通に Sample10.htm を web browser で開きます 場合によっては セキュリティーが云々と言うかも知れませんが 適時 処置して下さい 今回の例では 座標 (30,40) あたりに Hello World という文字列が表示されます 25/40 appletviewer の利用 web browser で html を開かなくても appletviewer を使うことでも applet を動かすことができます コンソールで appletviewer Sample10.htm とうつと 新しいwindowが立ち上がり appletが実行されます 26/40 13

appletviewer の利用その 2 appletviewer の場合 htmlファイルがなくても javaのソースコードにタグを書くことで実行できる import import java.applet.applet; java.applet.applet; import import java.awt.graphics; java.awt.graphics; /* /* <applet <applet code="javaapplet code="javaapplet JavaApplet01.class" JavaApplet01.class" width=250 width=250 height=250> height=250> </applet> </applet> */ */ public public class class JavaApplet01 JavaApplet01 extends extends Applet{ Applet{ public public paint(graphics paint(graphics g){ g){ g.drawstring("hello g.drawstring("hello World",30,40); World",30,40); コメントアウト内に <applet> のタグを書く ここではソースを指定します コンソールで あらかじめコンパイルしておくこと appletviewer JavaApplet01.java 27/40 applet の書き方 java.applet と java.awt というパッケージを利用します Applet というクラスを拡張したクラスを作成することになります main というクラスは必要ありません その代わり ある特定のメソッドを書くと ある順番通りに実行されていきます 必要なメソッドだけを記述します 28/40 14

標準メソッド init() メソッド 初期化が必要な時に書く 最初に 1 回だけ実行される start() メソッド init() メソッドの次に実行される また 実行が再開されたときにも実行される stop() メソッド アプレットの実行が中断したとき実行される paint() メソッド 画面線画等の具体的な記述を行う repaint() メソッド 再線画を行うときに試用する upate() メソッド repaint() が実行されたときに実行される destroy() メソッド アプレットが終了するときに実行される 29/40 標準メソッド 起動 意図的な再線画 init() repaint() start() paint() update() 中断 再開 stop() destroy() 終了 30/40 15

基本的な画面線画 31/40 Graphics クラス public paint(graphics g) の Graphics は Graphics クラスを意味しています 画面の描画を行いたい場合 Graphics クラスのオブジェクトのメソッドを実行します この例の場合 オブジェクト g のメソッドを実行することで 画面線画等を行います 32/40 16

例 import java.applet.applet; import java.awt.graphics; import java.awt.color; /* /* */ */ <APPLET CODE="JavaApplet02.class" WIDTH=250 HEIGHT= 100> 100> </APPLET> public class JavaApplet02 extends Applet{ public paint(graphics g){ g g){ g.drawstring("hello World",30,40); g.drawline(0,0,100,100); g.setcolor(color.blue); g.fillrect(45,20,20,20); g.clearrect(30,30,20,20); g.drawroundrect(60,60,20,20,5,5); Graphics クラスのインスタンス g g のメソッドとして描画を実行 33/40 戻り値 Graphics クラスの主なメソッドその 1 記法と意味 drawline(int x1, int y1, int x2, int y2); 座標 (x1,y1) から (x2,y2) まで線を引く drawrect(int x, int y, int width, int height) 座標 (x,y) を左上の座標とした サイズ width x height の四角を書く fillrect(int x, int y, int width, int height) 座標 (x,y) を左上の座標とした サイズ width x height の 塗りつぶされた四角を書く 34/40 17

Graphics クラスの主なメソッドその 2 戻り値 記法と意味 drawroundrect(int x, int y, int width, int height, int arcwidth, int archeight) 座標 (x,y) を左上の座標とした サイズ width x height の角丸の四角を書く 丸さを arcwidth と archeight で指定 fillroundrect(int x, int y, int width, int height, int arcwidth, int archeight) 座標 (x,y) を左上の座標とした サイズ width x height の 塗りつぶされた角丸の四角を書く 丸さを arcwidth と archeight で指定 35/40 Graphics クラスの主なメソッドその 3 戻り値 記法と意味 clearrect(int x, int y, int width, int height) 座標 (x,y) を左上の座標とした サイズ width x height の領域を消す drawstring(attributedcharacteriterator iterator, int x, int y) 座標 (x,y) に iterator の文字列を出力する iterator の部分には 文字列を記述することが多い copyarea(int x, int y, int width, int height, int dx, int dy) 座標 (x,y) を左上の座標とした サイズ width x height の領域を 座標 (dx,dy) にコピーする 36/40 18

戻り値 Graphics クラスの主なメソッドその 4 記法と意味 drawoval(int x, int y, int width, int height) 座標 (x,y) を外接四角形の左上座標とした サイズ width x height のサイズの楕円を書く filloval(int x, int y, int width, int height) 座標 (x,y) を外接四角形の左上座標とした サイズ width x height のサイズの塗りつぶされた楕円を書く 37/40 戻り値 Graphics クラスの主なメソッドその 5 記法と意味 drawarc(int x, int y, int width, int height, int startangle, int arcangle) 座標 (x,y) を外接四角形の左上座標とした サイズ width x height のサイズの円弧を書く 円弧の始点の角度を startangle で 描く円弧の角度を arcangle で指定する drawarc(int x, int y, int width, int height, int startangle, int arcangle) 座標 (x,y) を外接四角形の左上座標とした サイズ width x height のサイズの塗りつぶされた扇形を書く 扇の始点の角度を startangle で 描く扇の角度を arcangle で指定する 38/40 19

Graphics クラスの主なメソッドその 6 戻り値 記法と意味 setcolor(color c) 描画する色を c に変更する ここで Color は java.awt. に含まれているクラス c として Color.blue, Color.white, Color.lightGray, Color.gray, Color.darkGray, Color.black, Color.red, Color.pink, Color.orange, Color.cyan, Color.yellow, Color.green, Color.magenta が指定できる 39/40 Graphics クラスの主なメソッドその 7 戻り値 記法と意味 drawpolygon(int[] xpoints, int[] ypoints, int npoints) npoints 個の座標を結んだ多角形を書きます xpoints には x 座標を ypoints には y 座標を格納しておきます fillpolygon(int[] xpoints, int[] ypoints, int npoints) npoints 個の座標を結んだ多角形を書き 内部を塗りつぶします xpoints には x 座標を ypoints には y 座標を格納しておきます 40/40 20

Graphics クラスの主なメソッド 他にも さまざまなメソッドが準備されています 詳細は サン マイクロシステムズのサイト http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/graphics.html を参照 41/40 マウスイベントの検知 42/40 21

マウスイベントとは Javaにおいてマウスを扱う方法は 複数有ります ここでは インターフェース MouseListenerを実装する方法を紹介します java.awtとjava.awt.eventというパッケージに属するクラスを利用します Javaでは 次のような感じでマウスを扱います 1. ( ユーザーがマウスを使って何かする ) 2. マウスイベントが発生したと Javaが認識! 3. マウスイベントに応じて 何らかの処理を行う 43/40 マウス処理を行うために 次のことを行う必要があります マウスイベントが発生したことを認識するようにする ソースに addmounselistener(this); と記述する 発生したマウスイベントに応じて 何を行うかを記述する MouseListener を implements する 次の 5 つのメソッドをオーバーライドする 必ずオーバーライドする必要がある 44/40 22

インターフェース MounseListener のアブストラクトメソッド 記法 public mouseenterd(mouseevent me) public mouseexited(mouseevent me) public mousepressed(mouseevent me) public mousereleased(mouseevent me) public mouseclicked(mouseevent me) 意味 マウスが窓の領域に入ったときに実行 マウスが窓の領域から出たときに実行 マウスボタンが押されたときに実行 マウスボタンが離されたときに実行 マウスボタンがクリックときに実行 45/40 クラス MouseEvent マウスに関して起きるイベント関係のクラスです ここでは 詳細は行いません 以下の 2 つのメソッドのみを紹介します 戻り値 int int 記法と意味 getx() イベントが発生したときの X 座標を返します gety() イベントが発生したときの X 座標を返します 46/40 23

サンプルプログラム [1/3] import java.applet.applet; import java.awt awt.*;.*; import java.awt awt.event.*; /* /* */ */ 必要なパッケージを import <applet code="javaapplet03.class" width=250 height= 250> 250> </applet> public class JavaApplet03 extends Applet implements MouseListener{ int int x=10,y=10; public init(){ MounseListenerを addmouselistener(this); 実装する public paint(graphics g){ マウス関係のイベン g){ g.drawstring("hello World",x,y); トを検知するように 47/40 サンプルプログラム [2/3] public mouseenterd(mouseevent me){ me){ 必ず 5 つのメソッドをオーバーライド public mouseexited(mouseevent me){ me){ public mousepressed(mouseevent me){ me){ x=me.getx; y=me.gety; repaint(); repaint() を実行すると paintも実行される! マウスがクリックされたら 1. イベントの起きた x 座標を x に保存 2. イベントの起きた x 座標を y に保存 3. repaint() を実行 48/40 24

サンプルプログラム [3/3] public mousereleased(mouseevent me){ me){ public mouseclicked(mouseevent me){ me){ 49/40 25