Кто-нибудь может придумать хороший способ игнорировать один щелчок, который сопровождается двойным щелчком в Java?
Я ищу разные варианты поведения для каждого, что:
- в один клик рисует перекрестие в точке щелчка
- двойной щелчок выделяет объект на экране, но должен не рисовать перекрестие в точке щелчка
... кто-нибудь может придумать, как это сделать? Может быть, какая-то установка таймера? Идея приветствуется: -)
... и да, я знаю, что совершаю ужасное юзабилити / пользовательский интерфейс.
РЕДАКТИРОВАНИЕ № 2:
Даже если это работает, задержка из-за таймера сводит с ума - я отказываюсь от этого решения и использую средний щелчок для выбора вместо двойного щелчка ...
EDIT:
Спасибо cgull - это то, что я смог придумать, учитывая ваше подтверждение, что не существует простого способа сделать это (учтите, что если я установлю таймер <200, между щелчками будет появляться нечетная гонка) & таймер, но пока я устанавливаю это значение> 200, все работает просто превосходно):
public void mouseClicked(MouseEvent e) {
System.out.println( "Click at (" + e.getX() + ":" + e.getY() + ")" );
if (e.getClickCount() == 2) {
System.out.println( " and it's a double click!");
wasDoubleClick = true;
}else{
Integer timerinterval = (Integer)
Toolkit.getDefaultToolkit().getDesktopProperty(
"awt.multiClickInterval");
timer = new Timer(timerinterval.intValue(), new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (wasDoubleClick) {
wasDoubleClick = false; // reset flag
} else {
System.out.println( " and it's a simple click!");
}
}
});
timer.setRepeats(false);
timer.start();
}
}