- 71 名前:デフォルトの名無しさん [2007/10/05(金) 17:07:29 ]
- まえから気になってるんだけど、
マウスイベントで、シングルクリックとダブルクリックを識別するには、 MouseEvent#getClickCount()でボタンを押した回数が分りそうに思えるけど、 ダブルクリックをするとイベントが二回発生して、 一回目はClickCount=1のイベント、 二回目にClickCount=2のイベントというように発生するよね。 たとえば画面に丸印を用意して、その丸をシングルクリックのときは四角に、 ダブルクリックのときは、三角に変化させる。 別のボタンを押すとまた丸にもどる。というプログラムを作りたいとする。 ところがダブルクリックのときは、まず1回目のクリックでmouseClicked()が呼び出され、 二回目のクリックで再び同メソッドが呼び出される事になる。 だから次のようなコードを書いたとすると・・・ public void mouseClicked(MouseEvent evt) { int count = evt.getClickCount(); if(count == 1) { //四角を描画 } else if(count ==2) { //三角を描画 } } ダブクリのとき、1度目のクリックで四角が描画され、 二度目のクリックで三角が描画されることになってしまう。 ダブクリとシングルクリックを識別することがmouseClicked()では 実のところできないような気がするのだけど、みんなどんなやり方してますか?
|

|