java中识别双击
我想知道当鼠标在组件中双击时我们如何执行操作。
I want to know how can we perform action when mouse is double clicked in a component.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想知道当鼠标在组件中双击时我们如何执行操作。
I want to know how can we perform action when mouse is double clicked in a component.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
假设您的意思是在 Swing 中,为您的组件分配一个 MouseListener:
参考:
监听器
Assuming you mean in Swing, assign a MouseListener to your Component:
Reference:
Listener
如果您希望允许用户在短时间内进行多次双击,则
e.getClickCount()==2
是不够的。您受到桌面配置的限制。
您可以通过查看
Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
的结果来获取它。绕过该问题的一个好方法是不使用
getClickCount()< /code> 检查但要使用
计时器
,您可以在其中选择点击之间的最大间隔并自行处理计数(非常简单)。相关代码:
在Win Xp操作系统上测试且完美。
The
e.getClickCount()==2
is not enough if you want to allow your users to do multiple double clicks in a short delay.You are limited by the desktop configuration.
You can get it by looking the result of
Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
A good way to bypass the problem is not to use the
getClickCount()
check but to use aTimer
where you can choose the interval max between your clicks and to handle by oneself the count (very simple).The code associated :
Tested with Win Xp OS and perfect.
我的问题是,如果用户单击一次,我必须以一种方式响应,如果用户单击多次,我必须以另一种方式响应(当我多次单击时,我的 Swing VM 似乎能够计数最多四次单击)。当我运行上面的示例时,它似乎将三次点击算作一次。所以,这是我的重写。基本上,我只是有一个计划任务,等待尘埃落定,然后检查注册的点击次数。 400 毫秒的等待似乎最适合我。
My problem is that I have to respond one way if the user single clicks, another if they click more than one time (my Swing VM seems to be able to count up to four clicks when I click multiple times). When I ran the example above, it seemed to count a triple click as a single one. So, here is my rewrite. Basically, I just have a scheduled task that waits until the dust clears and then checks the number of clicks registered. The 400 ms wait seems to work best for me.