coords和mouseMove点坐标上的Java fillRect在Y轴上关闭

时间:2013-05-28 23:19:18

标签: java java-2d

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

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

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

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

Full code for the three example classes

2 个答案:

答案 0 :(得分:3)

  

它总是报告Y轴约25像素

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

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

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

答案 1 :(得分:1)

FrameBoard的来源不同。 Board的来源是(0, 25)的{​​{1}}。

Got it now?

不是一个好的形象。首先,屏幕截图不会显示光标,所以我绘制了它。其次,我没有将光标准确地放在Frame上,而是放在它周围。