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

时间:2014-03-11 07:55:17

标签: java swing awt mouseevent mouse-listeners

多年来我一直在使用基于AWT和Swing的界面反复出现这个问题:一些鼠标点击事件不会在MouseListener中触发mouseClicked,因为鼠标在点击期间移动了至少一个像素(这是一些鼠标点击最多的) )。这被解释为拖动操作。 有没有办法让AWT / Swing在定义点击时更加宽容?

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

  1. 向每个组件添加唯一的MouseListener和MouseMotionListener
  2. 在mouseMoved,mouseDragged和mouseReleased(需要测量时间,行进距离......)中进行某种计算。
  3. 将“固定”鼠标事件转发到由组件实现的新鼠标输入界面
  4. 必须有更好的方法!我希望有一个全球性的环境,但我找不到一个......

    相关文章

1 个答案:

答案 0 :(得分:0)

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

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