Java中的鼠标坐标不准确?

时间:2013-08-29 14:05:14

标签: java controls mouse

我刚刚开始在java中使用鼠标监听器,我遇到了一个问题,我点击了哪里以及对象出现的位置。我一直试图做的是让一个物体出现在我点击的地方,但是它显示的位置是在鼠标下方,而在右边一点点。

出现这种情况的原因是什么?我当前使用的是mouseX和mouseY作为整数,并且每次单击按钮时将其设置为等于evt.getX()/ evt.getY()。

2 个答案:

答案 0 :(得分:1)

鼠标坐标很好,但您可能没有正确使用它们。

  • 您的MouseListener是否已添加到JFrame?如果是这样,请不要这样做。将其添加到contentPane或包含要添加的对象的组件。
  • 另请注意,向容器添加组件时,添加点位于组件的左上角,而不是中心。要使它成为中心,你必须做一些简单的数学计算。
  • 要获得更多更好的帮助,请发布sscce

答案 1 :(得分:1)

我想扩大“充气鳗鱼的气垫船”的明智之词(??)

您获得的坐标相对于您正在使用的JFrame,并且您要将新对象添加到contentPane

有什么不同?

嗯,好的,你问,不同的是jFrame两边有一个小边框/条, enter image description here

意味着它比contentPane稍微偏差,因此当您添加对象时,它会向右移动一点,然后向下移动,然后是您期望的

enter image description here