Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка Double Click / 16 сообщений из 16, страница 1 из 1
01.03.2006, 11:28
    #33572985
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
У некоторого объекта есть обработчик мыши.
По одинарному клику и по двойному клику должны происходить различные действия.

Проблема в том, что до того, как срабатывает обработка двойного клика — полюбому отрабатывает обработка одинарного клика.

То есть сначала первый клик от двойного клика обрабатывается как одинарный, а потом после второго клика идет обработка двойного клика как целого.

Есть ли возможность разделить обработку одинарного клика и двойного?

Может кто-нибудь решал сходную проблему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 package  MyPackage;

 import  java.awt.event.*;

 public   class  MyClass  extends  JTable  implements  MouseListener
     public  MyClass() {
         this .addMouseListener( this );
    }

// MouseListener implementation
     public   void  mouseClicked(MouseEvent event) {
         if (event.getClickCount()== 1 ) {
            // single click  - срабатывает при любых кликах
        }

         if (event.getClickCount()== 2 ) {
            // double click
        }
    }
     public   void  mousePressed(MouseEvent event) {
    }
     public   void  mouseReleased(MouseEvent event) {
    }
     public   void  mouseEntered(MouseEvent event) {
    }
     public   void  mouseExited(MouseEvent event) {
    }
}
...
Рейтинг: 0 / 0
01.03.2006, 11:38
    #33573028
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
поменяйте местами 1 и 2


-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.03.2006, 12:16
    #33573223
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Deadyпоменяйте местами 1 и 2




Пробовал. Разницы никакой. Все равно сначала обрабатывается первый клик от двойного клика.
...
Рейтинг: 0 / 0
01.03.2006, 12:22
    #33573245
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
У тебя же 2 кнопки на мыше(min),вот при помощи их и сделай разделение событий
...
Рейтинг: 0 / 0
01.03.2006, 12:47
    #33573378
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
а если 1 убрать, 2 сработает?

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.03.2006, 13:46
    #33573642
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Deadyа если 1 убрать, 2 сработает?

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3


Сработает.

В момент первого клика в переменной запоминаешь время нажатия. В момент второго клика анализируешь время, прошедшее с предыдущего нажатия. Если больше какого-то порога - то выполняешь действия по одинарному клику, если меньше - по двойному.
...
Рейтинг: 0 / 0
01.03.2006, 13:56
    #33573691
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Кувалдин

> В момент первого клика в переменной запоминаешь время нажатия. В
> момент второго клика анализируешь время, прошедшее с предыдущего
> нажатия. Если больше какого-то порога - то выполняешь действия по
> одинарному клику, если меньше - по двойному.Тема==Ответить




это дублирование функций ОС, по идее getClickCount() должен возвращать
только 2 при двойном клике.

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.03.2006, 13:57
    #33573694
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
в смысле должно генериться только одно событие на 2ной клик, а тут
похоже генерятся 2 события


-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.03.2006, 14:03
    #33573722
johanna
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
а зачем это надо? может быть можно каким то другим способом решить? т.е. обрабатывать только одинарный клик, а event двойного клика имплементировать на другой кнопке?
...
Рейтинг: 0 / 0
01.03.2006, 15:07
    #33574084
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Deadyв смысле должно генериться только одно событие на 2ной клик, а тут
похоже генерятся 2 события


-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3

А ты попробуй на один и тот же компонент в .NET повесить обработчики click и doubleClick. Уверяю тебя, что обработчик click будет обрабатывать каждое нажатие. а не те, которые не обрабатываются doubleClick-ом.

Так что doubleClick в Win реализован методом, похожим на предложенный мной.
...
Рейтинг: 0 / 0
03.03.2006, 13:46
    #33579968
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Кувалдин Роман
В момент первого клика в переменной запоминаешь время нажатия. В момент второго клика анализируешь время, прошедшее с предыдущего нажатия. Если больше какого-то порога - то выполняешь действия по одинарному клику, если меньше - по двойному.

Видимо так и придется делать.
...
Рейтинг: 0 / 0
06.03.2006, 12:18
    #33583702
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
А если поменять местами 1 и 2, а в 2 сделать возврат из обработчика событий?
...
Рейтинг: 0 / 0
06.03.2006, 22:53
    #33585513
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Сергей111А если поменять местами 1 и 2, а в 2 сделать возврат из обработчика событий?

Не выйдет. Ты по-любому отловишь первое нажатие.
...
Рейтинг: 0 / 0
07.03.2006, 06:07
    #33585707
Обработка Double Click
Кувалдин Роман Deadyа если 1 убрать, 2 сработает?

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3


Сработает.

В момент первого клика в переменной запоминаешь время нажатия. В момент второго клика анализируешь время, прошедшее с предыдущего нажатия. Если больше какого-то порога - то выполняешь действия по одинарному клику, если меньше - по двойному.

А если второго клика не будет?
...
Рейтинг: 0 / 0
07.03.2006, 09:18
    #33585848
biomen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Прохожий мимо Кувалдин Роман Deadyа если 1 убрать, 2 сработает?

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3


Сработает.

В момент первого клика в переменной запоминаешь время нажатия. В момент второго клика анализируешь время, прошедшее с предыдущего нажатия. Если больше какого-то порога - то выполняешь действия по одинарному клику, если меньше - по двойному.

А если второго клика не будет?

Запускать еще один обработчик через таймер при первом клике,
если второго клика нет обработка одного, иначе двух
)))))))))))))))))))))))))
...
Рейтинг: 0 / 0
07.03.2006, 11:05
    #33586171
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка Double Click
Прохожий мимоА если второго клика не будет?

Тогда - таймер запускать.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка Double Click / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]