2010年7月3日土曜日

Java Swing MouseEvent DoubleClick の醜悪

Swingでのダブルクリック判定は、MouseListenerの中で MouseEvent#getClickCount() の数を見て判定するのだが、以下のようにSingleイベントとDoubleイベントの2つが発生する仕様となっている。

1) Event : ClickCount=1
2) Event : ClickCount=2
3) ......

つまり、ダブルかどうかは自分で判定ロジックを作れとのことであり、これだったらClickCountなどあまり無意味と言える。

実装例)
 タイマーを仕掛けて N miliSec以内にクリックが連続した場合をDoubleと判定し、そうでない場合はSingleとしてタイマータスクの内部から処理を実行する

0 件のコメント: