4

我在正在编写的游戏中遇到了这个问题,但在一个单独的 jar 中重现了这个问题,该 jar 仅包含一个框架、一个面板和一个鼠标运动侦听器。

问题是我画了一个矩形 - 例如在x:512, y:384 (48x48).

在帧上使用鼠标运动侦听器,它总是报告 Y 轴少约 25 个像素。因此,虽然矩形的坐标应该是x:512, y:384,但鼠标运动侦听器报告为x:512, y:409.

我理论上可以将差异添加到鼠标 Y,但我需要了解为什么会发生这种情况。

三个示例类的完整代码

4

2 回答 2

3

它总是报告 Y 轴少 25 个像素

也许您将 MouseListener 添加到框架而不是面板。

您在面板上绘制矩形,但面板位于(在我的操作系统上)从框架顶部向下 30 像素,因此您的坐标不匹配。X 值也应该超出框架边框的宽度。

尝试将侦听器添加到面板。

于 2013-05-28T23:29:43.553 回答
1

Frame和的起源Board不同。的起源Board(0, 25)Frame

现在明白了?

不过,这不是一个好形象。首先,截图不会显示光标,所以我画了它。其次,我没有把光标完全放在上面,(0, 25)而是放在它周围。

于 2013-05-28T23:37:15.573 回答