2
我正在Java中構建一個簡單的圖形應用程序,它要求我在2D圖形畫布內獲取鼠標位置。我使用了代碼MouseInfo.getPointerInfo().getLocation()
,但它返回了相對於JFrame窗口而不是g2d畫布的鼠標位置。在JFrame中獲取鼠標位置考慮窗口邊界
例如,當我的鼠標光標位於g2d畫布上的座標(0,0)處時,由於窗口周圍有邊框,因此MouseInfo.getPointerInfo().getLocation()
將返回(8,30)。
我可以只考慮偏移量,但每個操作系統的窗口邊框大小會發生變化。
我需要手動檢查操作系統和因素的邊界偏移,還是有更快的方法?
本帖] (http://stackoverflow.com/questions/12465003/java-mouseevent-position-is-inaccurate)看起來像一個很好的解決你的問題。 –
謝謝,約翰!該帖子的更新完全解決了我的問題。我需要使用以下代碼添加一個框架:'frame.getContentPane()。addMouseListener(listener);',然後用'evt.getPoint()獲取鼠標在事件監聽器中的位置' –