作者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
1F:推 H45:我有两种方法,1. disableEvents 2. Multi-threading 01/08 03:21
2F:推 PsMonkey:为甚麽加变数控制无效 @__@ 01/08 03:28
3F:推 H45:因为点点点...AWTThread busy, 然後 event 照样 dispatch 01/08 03:35
4F:→ tatibana31:可否问一下怎麽作disableEvents??因为这个我从没作过 01/08 03:41
5F:推 H45:该方法为 protected, 若走这条路,你需要继承 component 01/08 03:46