トップページ > Java3D入門 > Javaのマウス入力(1)

マウス・リスナについて

 

マウス入力をするために

おおまかな話の流れはキーボード入力の時と同じです。マウス入力用に用意された インターフェースを利用します。ただし,キーボード入力の時は1種類しかなかったインプット用のインターフェースが, マウスでは3種類もあります。

キーボード・リスナの時と同様に,「イベントを受信するコンポーネント」に対して“addMouseListener()”等のメソッドを 実行することでマウスからの入力を受信させるようにします。特に,1つのウィンドウ内に複数のマウス入力を要するコンポーネントが あって,それぞれ別々の動作をさせたい場合は,その数だけこれらのインターフェースを実装したクラスを作る必要があります。

ここでは各インターフェースに含まれるメソッドをざっと紹介します。具体的な実装は次ページ で解説します。

 

MouseListenerインターフェース

クリック等の,ボタンを押すアクションに対応したインターフェースです。
Button(ボタン)等のコンポーネントには,それ専用のアクション・リスナが存在しますが, それ以外…たとえば“キャンバス内でクリックしたらそのピクセルに色を付けたい”などの処理で 「マウスそのものの動作」としてイベントを扱いたい時に使います。 また,マウス・カーソルがリスナ領域に入ったか入っていないかの判定をする メソッドも含まれています。

void mouseClicked(MouseEvent event)

マウスがクリックされたときに呼ばれるメソッドです。

void mouseEntered(MouseEvent event)

マウスが,登録したリスナ領域に入ったときに呼ばれるメソッドです。

void mouseExited(MouseEvent event)

マウスが登録したリスナ領域から出たときに呼ばれるメソッドです。

void mousePressed(MouseEvent event)

マウスのいずれかのボタンが押されたときに呼ばれるメソッドです。

void mouseReleased(MouseEvent event)

マウスのいずれかのボタンが押された状態から,離されたときに呼ばれるメソッドです。

 

MouseMotionListenerインターフェース

マウスが動いた時,及びドラッグされた時に呼び出されるメソッドが含まれます。

void mouseMoved(MouseEvent event)

マウスが動いた時に呼ばれるメソッドです。 マウスに合わせて何かを動かす…などの処理はこのメソッド内に記述することになります。

void mouseDragged(MouseEvent event)

マウスがドラッグされた時に呼ばれるメソッドです。 これも上と同じく,何かマウスの動きに追従させる動作をさせたい時に便利です。

 

MouseWheelListenerインターフェース

ホイール付きマウスで,ホイールからの操作を受け付けたいときに使うメソッドが含まれます。

void mouseWheelListener(MouseWheel event)

マウスのホイールがぐりぐり回されたときに呼ばれるメソッドです。 (もちろん,ホイールが付いていないマウスでは無効です)

 

よく使うMouseEventクラスのメソッド

ここまで紹介してきたメソッドの引数には“MouseEvent”クラスが指定されています。 このMouseEventクラスはそのイベントが起こった時点でのマウスの状態に関する情報を持っています。 このクラスのメソッドの中でも,アプリケーションを作る時に多用するものだけ,簡単に紹介します。

getX()とgetY()

各メソッドが呼ばれた時点でのマウスの座標をint型で返します。 画面の左上が座標の原点です。

getButton()

ボタン関係のメソッドで,押されたボタンを判別したい時に使います。 戻り値としては,MouseEventクラスの“BUTTON1”,“BUTTON2”,“BUTTON3”,“NOBUTTON”などの マクロが返ります。

getWheelRotation()

こちらは“MouseWheelEvent”クラスのメソッドです。マウスのホイールが回転したステップ数をint型で返してくれます。




それでは,次ページで実際のマウス入力クラスを作っていくことにします。




戻る   次へ