java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
爱学习的小伙伴们,可能都学习过java,但是你知道java鼠标双击事件是怎么实现的吗?不知道的话跟着小编一起来学习了解java鼠标双击事件吧。
java鼠标双击事件实例介绍
public class MyMouseListener
extends java.awt.event.MouseAdapter ...{
public void mouseClicked(MouseEvent e) ...{
System.out.println("clicked");
int clickTimes = e.getClickCount();
if (clickTimes == 2) ...{
System.out.println("Doublc Clicked!");
}
}
} 但是这样并没有达到我们的要求,因为在每次触发双击事件的同时会触发单击事件.所以我们试图改进以上方案,不使用系统提供的e.getClickCount()方法.可以考虑当第一次单击鼠标的时候让鼠标单击事件延时0.2秒执行,而在这段时间里等待第二次单击,如果有第二次单击,那么我们执行双击事件任务,取消单击任务;如果在这段时间没有等到再次单击,那么执行单击任务.
下面是用定时器延时单击事件实现鼠标双击事件,单击和双击事件互不影响!
public class MyMouseListener
extends java.awt.event.MouseAdapter ...{
private static boolean flag=false;//用来判断是否已经执行双击事件
private static int clickNum=0;//用来判断是否该执行双击事件
public void mouseClicked(MouseEvent e) ...{
final MouseEvent me=e;//事件源
this.flag=false;//每次点击鼠标初始化双击事件执行标志为false
if (this.clickNum == 1) ...{//当clickNum==1时执行双击事件
this.mouseDoubleClicked(me);//执行双击事件
this.clickNum=0;//初始化双击事件执行标志为0
this.flag=true;//双击事件已执行,事件标志为true
return;
}
//定义定时器
java.util.Timer timer=new java.util.Timer();
//定时器开始执行,延时0.2秒后确定是否执行单击事件
timer.schedule(new java.util.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);//执行单击事件
MyMouseListener.flag = true;
MyMouseListener.clickNum=0;
n=0;
this.cancel();
return;
}
clickNum++;
n++;
}
},new java.util.Date(),500);
}
/** *//**
* 鼠标单击事件
* @param e 事件源参数
*/
public void mouseSingleClicked(MouseEvent e)...{
System.out.println("Single Clicked!");
}
/** *//**
* 鼠标双击事件
* @param e 事件源参数
*/
public void mouseDoubleClicked(MouseEvent e)...{
System.out.println("Doublc Clicked!");
}
}
//Test.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Test extends JFrame{
public Test(){
super("test");
init();
this.setSize(800,600);
this.setVisible(true);
}
private void init(){
JButton b=new JButton("button");
b.setBounds(50,50,100,30);
this.getContentPane().setLayout(null);
this.getContentPane().add(b);
b.addMouseListener(new MyMouseListener());
}
public static void main(String args[]){
new Test();
}
}你将以上2个文件编译一下,再运行 Test.java 文件即可
ava鼠标双击事件相关文章:
1.怎么用JS实现鼠标单击与双击事件共存
2.鼠标单击变成双击怎么解决
3.鼠标单击变双击或者多击怎么解决
4.鼠标单击变双击的修复方法
5.计算机网络实验论文
java监听鼠标双击_java鼠标双击事件 java鼠标双击监听相关推荐
- java中是否支持多重继承_java支持多重继承吗 JAVA特性面试题:
1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...
- java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)
Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包.从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JC ...
- java date只保留年月日_java.util.Date、java.sql.Date、java.sql.Timestamp区别和总结
在web开发中,避免不了对日期的操作,就几种常见的日期操作做个总结(部分参考网络,在此表示感谢): java.util.Date.java.sql.Datej.java.sql.Timestamp j ...
- java sql date 时分秒_java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间...
java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Da ...
- java数据类型 两大类_Java公开课|将Java数据类型分为这两大类,就能涵盖所有类型...
[摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...
- java 鼠标拖动_java 让表项支持鼠标拖动移位,并自动滚动滚动条
设想我们有一个表,表中有很多数据(多到竖起滚动条至少要出现).我们需要一个功能:用鼠标拖动某些项,然后将他们移动另一个位置,例如我们可能想一些名字相似啊,或者是内容相关度更高的数据项在一起. 要支持鼠 ...
- java面向对象编程集合边框_Java学习系列(七)Java面向对象之集合框架详解(上)
Java集合 有时也将集合称为容器类,它的作用就是用来"装对象"的.这里要注意的是集合也可以是对象.下面先看一张图: HashSet:底层用一个数组存元素 --而且这个数组的长度永 ...
- java日期用什么属性_java日期以及使用Java反射机制遍历实体类的属性和类型
fmt:formatDate 的输出格式 fmt关于时间格式的输出 2004-5-31 23:59:59 2004-4-1 23:59:59 JSTL标签fmt:formatDate引起的中文乱码问题 ...
- java 远程debug 内网_java jdb remote debug - java远程调试
简介 用log来做调试的方法低效茫目 远程调试是jdk自带的一个有利调试工具,可以快速定位问题 在工作机上使用eclipse来自带的remote debug 问题 运维禁止使用remote debug ...
- java最广泛的运行环境_Java运行环境下载|Java SE Runtime Environment(Java运行环境)8.0.131 官方多语言正式版_ - 极光下载站...
Java SE Runtime Environment(Java运行环境)官方版下载,Java SE Runtime Environment是运行JAVA程序不可缺少的环境,许多程序员都必须安装的运行 ...
最新文章
- JavaScript数据结构和算法
- 自动化运维工具——ansible安装及模块介绍
- 修改左侧导航显示样式(转载自Sunmoonfire's artistic matrix)
- python的基本语法while true_Python正课15 —— 流程控制之while循环
- SCI论文图片拼接Tips
- 实时记录运动轨迹插件_浅谈 leaflet 地图插件的使用(制作飞机航线图)
- 从零和到竞合 亚马逊为何联姻国美?
- 【无人机三维路径规划】基于帝国企鹅算法实现无人机三维路径规划附matlab代码
- 个人理财--知识点总结
- 有什么助于睡眠的方法,睡眠不好,一定要知道这些方法
- 1154.一年中的第几天
- mean IOU是什么意思
- 操作系统安装前的操心
- 温度记录仪和传感器的校准知识
- Flask—静态资源配置
- 宽带连接错误的处理办法651、691、623、678、645、720、721、718、734、769
- 花千骨23日服务器维护,花千骨手游12日服务器数据互通维护通知
- [JVM]了断局: JDK8默认配置.
- 洛谷——P2862 [USACO06JAN]把牛Corral the Cows
- 一名优秀的销售人员应该具备哪些素质和能力?