может ли кто-нибудь подумать о хорошем способе игнорировать единственный клик, который поставляется с двойным щелчком мыши на Java?
Я ищу, чтобы у каждого было по-разному поведение, например:
- однократное нажатие красок перекрестия в точке щелчка
- двойной щелчок выбирает объект на экране, но должен не рисовать перекрестие в точке щелчка
... может ли кто-нибудь подумать о способе сделать это? Может быть, какая-то настройка таймера? Идеи оценили: -)
<disclaimer> ... и да, я знаю, что я совершаю самый отвратительный юзабилити /UI faux pas. </отказ от ответственности >
РЕДАКТИРОВАТЬ № 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 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 a simple click!");
}
}
});
timer.setRepeats(false);
timer.start();
}
}