Java : ignore single click on double click?

后端 未结 4 1423
名媛妹妹
名媛妹妹 2020-12-29 09:00

can anyone think of a good way to ignore the single click that comes with a double-click in Java ?

I\'m looking to have different behaviors for each such that:

4条回答
  •  天涯浪人
    2020-12-29 09:16

    Actually I think there is a simpler solution (use InputEvent's getWhen() method):

    class DCListener extends MouseAdapter{
    
        private long maxTimeBetweenClicks; // in millis
        private long firstClickTime=0;
        private Runnable eventHandler;
    
        public DCListener(long maxTimeBetweenClicks,Runnable eventHandler){
            this.maxTimeBetweenClicks=maxTimeBetweenClicks;
            this.eventHandler=eventHandler;
        }
    
        public void mouseClicked(MouseEvent e){
    
            if((e.getWhen()-firstClickTime)<=maxTimeBetweenClicks){
                firstClickTime=0; // 3 clicks are not 2 double clicks
                eventHandler.run();
            }else{
                firstClickTime=e.getWhen();
            }
    
        }
    }
    

提交回复
热议问题