Java解决双击事件触发前总触发单击事件的问题
2018-02-05 16:32
381 查看
package com.sdrd.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Timer; import java.util.TimerTask; import javax.swing.JButton; public class MyMouseListener extends MouseAdapter { private static boolean flag = false;// 用来判断是否已经执行双击事件 private static int clickNum = 0;// 用来判断是否该执行双击事件 @SuppressWarnings("static-access") @Override public void mouseClicked(MouseEvent e) { final MouseEvent me = e;// 事件源 final JButton btn = (JButton) e.getSource(); final String name = btn.getText().split(" ")[0]; final int val = Integer.parseInt(btn.getText().split(" ")[1]); this.flag = false;// 每次点击鼠标初始化双击事件执行标志为false if (this.clickNum == 1) {// 当clickNum==1时执行双击事件 this.mouseDoubleClicked(me, val,name,btn);// 执行双击事件 this.clickNum = 0;// 初始化双击事件执行标志为0 this.flag = true;// 双击事件已执行,事件标志为true return; } // 定义定时器 Timer timer = new Timer(); // 定时器开始执行,延时0.2秒后确定是否执行单击事件 timer.schedule(new TimerTask() { private int n = 0;// 记录定时器执行次数 public void run() { if (MyMouseListener.flag) {// 如果双击事件已经执行,那么直接取消单击执行 n = 0; MyMouseListener.clickNum = 0; this.cancel(); return; } if (n == 1) {// 定时器等待0.2秒后,双击事件仍未发生,执行单击事件 mouseSingleClicked(me, val,name,btn);// 执行单击事件 MyMouseListener.flag = true; MyMouseListener.clickNum = 0; n = 0; this.cancel(); return; } clickNum++; n++; } }, new java.util.Date(), 300); } /** * 鼠标单击事件 * * @param e * 事件源参数 */ public void mouseSingleClicked(MouseEvent e,int val,String name,JButton btn) { System.out.println("Single Clicked!"); val += 1; btn.setText(name + " " + val); } /** * 鼠标双击事件 * * @param e * 事件源参数 */ public void mouseDoubleClicked(MouseEvent e,int val,String name,JButton btn) { System.out.println("Doublc Clicked!"); val = (val > 0) ? (val - 1) : 0; btn.setText(name + " " + val); 4000 } }
相关文章推荐
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- 使用iscroll滑动区域内的div onclick事件单击一次触发了两次问题的解决
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- js鼠标单击和双击事件冲突问题的快速解决方法
- 解决Extjs一次双击会触发两次单击事件,和一次双击事件
- Jquery双击事件不触发执行单击事件解决方法
- 关于Java的Mouse事件 单击、双击问题
- js鼠标单击和双击事件冲突问题的解决方法
- js鼠标单击和双击事件冲突问题的解决方法
- js鼠标单击和双击事件冲突问题的解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法