java - 降低鼠标点击检测的灵敏度

标签 java swing awt mouseevent mouse-listeners

多年来,我在使用基于 AWT 和 Swing 的界面时反复遇到此问题:某些鼠标单击事件不会在 MouseListener 中触发 mouseClicked,因为鼠标在单击期间至少移动了一个像素(这是某些鼠标的大多数单击次数) )。这被解释为拖动操作。 有没有办法告诉 AWT/Swing 在点击的定义上更加宽松一些?

如果您想要完整的解决方案(例如,如果您的组件还必须处理拖动操作),则手动实现解决方法非常麻烦:

  1. 为每个组件添加唯一的 MouseListener 和 MouseMotionListener
  2. 对 mouseMoved、mouseDragged 和 mouseReleased 中的点击进行某种计算(这需要测量耗时、行进的距离...)
  3. 将“固定”鼠标事件转发到组件实现的新鼠标输入接口(interface)

一定有更好的方法!我希望有一个全局设置,但我就是找不到......

相关帖子

最佳答案

尝试使用以下方法设置 D&D 的灵敏度:

System.setProperty("awt.dnd.drag.threshold", "5");

注意:只有列表、表格、文本和树组件才支持此功能!

查看 javax.swing.plaf.basic.DragRecognitionSupport#mouseDragged() 方法的用法。

关于java - 降低鼠标点击检测的灵敏度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22319501/

相关文章:

java - 如果不建议使用挥杆组件后退技巧?

java - JTextField 中的 Ctrl-Delete

java - 从具有完整 future 的循环中的数据库获取结果

Java在Swing上画圆和线

java - 单击后等待一秒并更改 JLabel 图标

Java 小程序未在浏览器中显示

java - Camel 动态模拟端点

java import 语句对内存或 JVM 的开销

java - Android各版本分享文字图片时出现错误

java - 重叠 AWT 行和 Swing JLabel