任何人都可以想出一種很好的方法來忽略Java中雙擊出現的單擊操作嗎?Java:忽略單擊雙擊?
我期待有不同的行爲,爲每個這樣的:
- 單點擊畫上的點擊點
- 雙擊選擇屏幕上的對象十字線,但應該不點擊點上漆十字線
......任何人都可以想出一種方法來做到這一點?某種定時器設置可能?一個想法表示讚賞:-)
<免責聲明> ...是的,我知道我犯了一個非常可憎的可用性/用戶界面失算。 < /免責聲明>
編輯#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();
}
}
這可怎麼工作的? wasDoubleClick不能是最終的,它在另一個類中使用(匿名ActionListener一個) – alessiop86 2012-09-15 10:20:14