[問題] 如何讓滑鼠點很多次仍視為一次?

看板java作者 (橘三十一)時間17年前 (2009/01/08 02:54), 編輯推噓4(401)
留言5則, 3人參與, 最新討論串1/4 (看更多)
以下是類似的程式碼: 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
我有兩種方法,1. disableEvents 2. Multi-threading
01/08 03:21, 1F

01/08 03:28, , 2F
為甚麼加變數控制無效 @__@
01/08 03:28, 2F

01/08 03:35, , 3F
因為點點點...AWTThread busy, 然後 event 照樣 dispatch
01/08 03:35, 3F

01/08 03:41, , 4F
可否問一下怎麼作disableEvents??因為這個我從沒作過
01/08 03:41, 4F

01/08 03:46, , 5F
該方法為 protected, 若走這條路,你需要繼承 component
01/08 03:46, 5F
文章代碼(AID): #19PFfF9j (java)
討論串 (同標題文章)
文章代碼(AID): #19PFfF9j (java)