イベント間の連携

ファイルはzipフォルダに納められています。
解凍ソフト(Aladdin Expander等)を使って解凍して下さい。

始点の保存

直線を描くには、始点と終点と言う2点の座標が必要です。
此処では、「マウスを押した」と言うイベントが発生した時に始点の座標が求まり、「マウスを離した」と言うイベントの発生で終点の座標が求められて描画します。
2つの異なるメソッド間で「始点」の座標を共有しなければなりません。

始点? 終点?

Mouse2.javaではマウスが押された時が始点で、離した時が終点だったので、メソッド毎に始点と終点の処理を分けて書きました。
此処では、始点の処理と終点の処理を「マウスが押された」メソッド内に書く事になります。
此処で、処理の流れを考えてみましょう。

1回目に押された点・・・始点
2回目に押された点・・・終点
3回目に押された点・・・始点
4回目に押された点・・・終点
    :
    :

上記の様に、始点の処理と終点の処理とを交互に行う事になります。
今、どっちの処理をしたのか? 次はどっちの処理をするのかをグローバル領域に覚えておく事にしましょう。
状態は2種類ですから、boolean型の変数を1つ用意します。

boolean flag = false; /*false:始点 true:終点*/

マウスが押され、mousePlessedメソッドが呼び出された時、「flag」が「false」で有れば、始点の処理を行い、最後に「flag」を「true」にしておきます。
「true」で有れば終点の処理を行い、最後に「flag」を「false」にしておきます。

ソース ダウンロード
Mouse2.java Mouse02.zip
Mouse3.java

戻る