2013-05-28 192 views
4

我在寫一個遊戲時遇到了這個問題,但在單獨的一個jar包中只有一個框架,一個面板和一個鼠標運動監聽器。座標上的Java fillRect和鼠標移動點座標在Y軸上關閉

問題是我畫了一個矩形 - 例如在x:512, y:384 (48x48)

在框架上使用鼠標移動監聽器時,它始終會報告Y軸減少約25個像素。因此,矩形的座標應爲x:512, y:384,鼠標移動偵聽器報告爲x:512, y:409

我理論上可以將差異添加到鼠標Y,但我需要了解爲什麼發生這種情況。

Full code for the three example classes

+0

可能它報告鼠標的提示或底部。 – arynaq

+0

我認爲可能是這種情況,但至少在視覺上,從指針底部到框的頂部大約有10像素。 – helion3

回答

3

它始終報告Y軸周圍的25個像素少

也許你添加的MouseListener的框架,而不是面板。

您可以在面板上繪製矩形,但面板位於(在我的操作系統上)距框架頂部30像素,因此座標不匹配。 X值也應該超出框架邊框的寬度。

嘗試添加偵聽器到面板。

+0

這是個問題,我沒有意識到框架包含在窗口的頂部作爲座標,這就解釋了偏移量。將聽衆移到面板上解決了問題。 – helion3

1

FrameBoard的來源有所不同。 Board的來源是Frame(0, 25)

Got it now?

不是一個良好的形象,雖然。首先,截圖不會顯示光標,所以我畫了它。其次,我沒有把我的光標準確地放在(0, 25)上,只是圍繞它而已。

+0

我不明白這不是最佳答案 –