import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public abstract class GameMouseListener extends MouseAdapter {
private ClickThread clickThread;// 非null,表示存在一个待匹配成双击的单击事件
@Override
public final void mouseClicked(MouseEvent e) {
int button = e.getButton();
switch (button) {
case MouseEvent.BUTTON1:
if (clickThread != null) {// 匹配成一个双击事件
clickThread.shouldDo = false;// 取消上一个的单击的执行
clickThread = null;// 置null,表示没有待匹配双击的单击事件
System.out.println(Thread.currentThread().getName() + "执行双击");
doubleClick(e);
} else {
clickThread = new ClickThread(e);// 开一个新线程等待匹配成双击事件并取消执行
clickThread.start();
}
break;
case MouseEvent.BUTTON3:
rightClick(e);
break;
}
}
private class ClickThread extends Thread {
boolean shouldDo = true;// 表示此次单击事件是否因该执行
final MouseEvent e;
public ClickThread(MouseEvent e) {
this.e = e;
}
@Ove
java双击事件处理
最新推荐文章于 2021-02-24 17:57:41 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)