java中 怎么区分单击和双击

来源:百度知道 编辑:UC知道 时间:2024/07/01 01:35:19
if(e.getClickCount()==2){
//布置聊天窗口界面
arrangeChat();
}else{
//布置信息界面
arrangeFriendInfo(e);
}
我这样写的话,我双击它 它会先触发单击,然后再触发双击
应该怎么设置呀?

在每次接到单击事件时,等待一段时间,看看后续的特定时间内是否有双击的事件产生,若是有,就放弃单前的单击事件,若是没有,就处理单击事件
if (e.getClickCount() == 1) {
mouseTimer = new javax.swing.Timer(350, new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("Single");
mouseTimer.stop();
}
});
mouseTimer.restart();
} else if (e.getClickCount() == 2 && mouseTimer.isRunning()) {
mouseTimer.stop();
System.out.println("Double");
}

对于java来说应该就是2个接口

通常情况下,一次单击会启动一个用户界面 (UI) 操作,而一次双击则会扩展该操作。 例如,一次单击通常可选择一个项,而双击则可编辑所选的项。 但是,Windows 窗体 Click 事件无法轻松应用于单击和双击执行多个不兼容操作的方案,因为绑定到 Click 或 MouseClick 事件的操作会在操作绑定到 DoubleClick 或 MouseDoubleClick 事件之前执行。 本主题演示此问题的两种解决方案。 一种解决方案是处理双击事件,并回滚单击事件处理过程中的操作。 在极少数情况下,可能需要通过处理 MouseDown 事件并使用 SystemInformation 类的 DoubleClickTime 和 DoubleClickSize 属性来模拟单击和双击行为。 度量点击之间的时间,如果在达到 DoubleClickTime 值之前发生第二次单击,并且单击发生在由 DoubleClickSize 定义的矩形范围内,请执行双击操作;否则,请执行单击操作。