[問題] 如何讓滑鼠點很多次仍視為一次?
以下是類似的程式碼:
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
推
01/08 03:21, , 1F
01/08 03:21, 1F
推
01/08 03:28, , 2F
01/08 03:28, 2F
推
01/08 03:35, , 3F
01/08 03:35, 3F
→
01/08 03:41, , 4F
01/08 03:41, 4F
推
01/08 03:46, , 5F
01/08 03:46, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):