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()获取鼠标在事件监听器中的位置' –