Java:忽略双击双击?
2022-09-02 22:00:52
有谁能想到一个好方法来忽略Java中双击带来的单击?
我希望每个人都有不同的行为,例如:
- 单击在单击点上绘制十字准线
- 双击可在屏幕上选择对象,但不应在单击点上绘制十字准线
...谁能想到一种方法来做到这一点?也许是某种计时器设置?一个想法赞赏:-)
<免责声明>...是的,我知道我正在犯下一个最令人发指的可用性/ UI错误。</免责声明>
编辑#2:
即使这有效,由于计时器令人抓狂而造成的延迟 - 我放弃了这个解决方案,并使用中键单击进行选择而不是双击...
编辑:
谢谢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();
}
}