作者tatibana31 (橘三十一)
看板java
標題[問題] 如何讓滑鼠點很多次仍視為一次?
時間Thu Jan 8 02:54:06 2009
以下是類似的程式碼:
public void procedure()
{
if(computer){
Action_A(); Action_B(); Drawing();
computer = false;
procedure();
}else if(!computer){
Action_A(); mouseControl = true;
}
}
滑鼠的程式碼為:
public void mouseClicked(mouseEvent m)
{
if(mouseControll){
Action_B(); Drawing(); mouseControll = false;
computer = true;
procedure();
}
}
大概就是玩牌時那種輪流的狀況,我現在遇到一個問題,
如果我只click 一次的話,什麼問題都沒有(這應該是正常的)
但是如果我連續狂按十次的話,procedure會連跑十次,即使有mouseControl這個
變數去控制的話,也是一樣
這種情形我該怎麼作,才有辦法在取得下次滑鼠控制權之前,只接受一次click,其
它視為無效?
我試過
用Thread.sleep()....無效。
用add & removeMouseListener()....無效
在procedure前加一個單次迴圈....無效
加synchronized好像在此是沒有作用的....
懇請有空的人,可以告訴我該怎麼作才可以作到?非常感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.107.41
推 H45:我有兩種方法,1. disableEvents 2. Multi-threading 01/08 03:21
推 PsMonkey:為甚麼加變數控制無效 @__@ 01/08 03:28
推 H45:因為點點點...AWTThread busy, 然後 event 照樣 dispatch 01/08 03:35
→ tatibana31:可否問一下怎麼作disableEvents??因為這個我從沒作過 01/08 03:41
推 H45:該方法為 protected, 若走這條路,你需要繼承 component 01/08 03:46