2009-05-14 12 views
0
上のマウス移動イベントを検出

(1)は簡単に簡単です。 (2)はややこしい。現在、JPanelのすべてのコンポーネントでイベントを登録する必要があります。 JPanelの周りの隣人がイベントでマウスの動きを検出した場合、これはJPanelが(2)状況を持っていることを意味します。しかし、これはかなり汚れています。将来、新しいコンポーネントを追加すると、このダーティーな回避策が破られます。<p>私は、次のイベントを検出したいのJPanelを有する</p> <p>(1)</p>におけるマウス移動が <p>(2)マウスが</p> て移動するときのJPanel

もう1つの方法は、JPanelを監視するタイマーを用意することです。マウスの位置がx秒以内にJPanel内にない場合は、JPanelがマウス移動イベントを起こしていると考えることができます。

しかし、このような一般的なタスクを実行するための別個のタイマーを持つことは過労です。

Javaプラットフォームで提供される方法はありますか?

答えて

6

クラスにMouseListenerを実装し、一番外側のパネルにマウスリスナーとして追加します。マウスがパネルの上を移動するとマウス入力のイベントを取得し、パネルが離れるとマウスが終了します。パネルに含まれるコンポーネントにかかわらず

ボイドのmouseEntered(MouseEvent e)マウスがコンポーネントに入ると が呼び出さ:のJavaDocから

void mouseExited(MouseEvent e) マウスがコンポーネントを終了すると呼び出されます。

関連する問題

 関連する問題