Взаимодействие SWT MouseListener с MouseEvent

#java #swt

#java #swt

Вопрос:

Я добавил MouseListener с mouseDown и событием MouseDoubleClick MouseDoubleClick. Моя проблема в том, что когда я дважды щелкаю мышью, событие Mousedown срабатывает вместе с событием MouseDoubleClick. Есть ли какой-либо способ предотвратить это?

фрагмент:

 gamecomp.addMouseListener(new MouseListener()
        {
            public void mouseDown(MouseEvent e)
            {
                if(randv==2)
                {
                    score  ;
                    scorecount(scorelabel);
                }
                
                else
                {
                    lifeloss  ;
                    lifes(lifelabel);
                }
            }
            
            public void mouseUp(MouseEvent e)
            {}
            
            public void mouseDoubleClick(MouseEvent e)
            {
                if(randv==0)
                {
                    score  ;
                    scorecount(scorelabel);
                }
                
                else
                {
                    lifeloss  ;
                    lifes(lifelabel);
                }
            }

        });
  

Заранее спасибо!

Комментарии:

1. Я не думаю, что вы могли бы предотвратить это. Но что, я думаю, вы могли бы сделать, это добавить потоковый короткий таймер в mouseDown , добавить флаг в свой mouseDoubleClick и проверить наличие этого флага после окончания таймера. Таким образом, вы можете решить в своем mouseDown , произошел ли двойной щелчок или нет.

2. Здесь есть пример использования таймера для этого.

3. Спасибо за помощь, но, похоже, это не работает. Я просто оставляю двойной щелчок, это не так уж и необходимо.