-1

我刚开始在 java 中使用鼠标侦听器,但遇到了单击位置和对象显示位置的问题。我一直在尝试做的是让一个对象出现在我单击的位置,但它出现的位置是在鼠标下方和右侧一点。

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

4

2 回答 2

1

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

  • 您的 MouseListener 是否已添加到 JFrame 中?如果是这样,请不要这样做。将其添加到 contentPane 或包含要添加的对象的组件。
  • 另请注意,当您将组件添加到容器时,添加点是组件的左上角,而不是中心。要使其成为中心,您必须进行一些简单的数学计算。
  • 如需更多更好的帮助,请发布sscce
于 2013-08-29T14:08:59.480 回答
1

我想扩展“充满鳗鱼的气垫船”(??)

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

有什么不同?

好吧,你问得很好,不同的是jFrame的侧面有一个小边框/条, 在此处输入图像描述

意味着它比 the 大一点contentPane,因此当你添加对象时,它比你预期的更向右和向下

在此处输入图像描述

于 2013-08-29T14:12:25.953 回答