试一下以下的逻辑:
1、初始化设置 模式<>单击或双击
2、有单击事件发生时,设置模式=单击
   if 时间超长事件发生时
      执行单击
      设置 模式<>单击或双击
   end if
   if 又有单击事件发生时 (既:设置模式=单击)
      执行双击
      设置 模式<>单击或双击
   end if

解决方案 »

  1.   

    问题还是没解决!设单击时做操作A,双击时做操作B。双击分为两次时间间隔很近的单击事件,他和单击事件的处理不同的地方在于:双击时,它的第一次点击应该不做操作A,等第二次点击时才作操作B。单击时只做操作A。按我们的逻辑处理,双击的第一次点击也作为单击处理,即做了操作A了,到第二次点击做操作B 。这就是说,双击时多了一个错误操作A 。
      

  2.   

    鼠标时间应该能区分单双击的,否则e.getClickCount()要它干吗?int count = e.getClickCount();
    if(count == 1){}
    else if(count == 2){}
    else{}就行了!!
      

  3.   

    鼠标时间应该能区分单双击的,否则e.getClickCount()要它干吗?int count = e.getClickCount();
    if(count == 1){}
    else if(count == 2){}
    else{}就行了!!
      

  4.   

    不判断间隔时间就没有有效的办法区分他们,因为双击的定义就是两次单击,千万别忘了这一点。你没看到windows的鼠标测试就可以设定双击间隔时间来判断两次单击是否能合并成一次双击么?这个问题我在开发中就遇到,我就是用count来解决,没有用时间间隔,我感觉没有必要严格的区分,如果你需要做两种有冲突的操作,那么你可以考虑产生双击的效果前先去处单击的效果。
    其实这个问题有点小题大作,没那个必要去研究这个,你个人的学习时间比得到这个问题的完美答案要重要的多了,你说呢?
      

  5.   

    to gularess:你那样是想当然,你自己试试看就知道了,双击事件响应前必定会先响应单击事件。
      

  6.   

    拜托你自己试一试!!!int count = e.getClickCount();
    if(count == 1)
       System.out.println("one click");
    else if(count == 2)
              System.out.println("two click");
         else
              System.out.println("more click");双击显示的结果应该是:
    one click
    two click如果你很快的点击三下的话结果是:
    one click
    two click
    more click
      

  7.   

    switch( count )
    { case 1:
             click() ;
             break ;
      case 2:
             doubleClick() ;
             break ;
      default:
    }
    这样子不行 ?
    你的判断时间的逻辑有点不对.
    第二次击键存在不确定性,应该在第一次击键后等待若干秒,
    这段时间内确实没有第二次击键才认为是单击
    如果这样做, 似乎要另开一个线程了, 呵呵, 得不偿失