Java 在考虑窗口边界的情况下获取JFrame中的鼠标位置
我正在用Java构建一个简单的图形应用程序,它需要我在2D图形画布中获取鼠标位置。我使用了代码Java 在考虑窗口边界的情况下获取JFrame中的鼠标位置,java,swing,jframe,java-2d,drawing2d,Java,Swing,Jframe,Java 2d,Drawing2d,我正在用Java构建一个简单的图形应用程序,它需要我在2D图形画布中获取鼠标位置。我使用了代码MouseInfo.getPointerInfo().getLocation(),但它返回相对于JFrame窗口而不是g2d画布的鼠标位置 例如,当我的鼠标光标位于g2d画布上的坐标(0,0)处时,MouseInfo.getPointerInfo().getLocation()将返回(8,30),因为窗口周围有边框 我可以只考虑偏移量,但每个操作系统的窗口边框大小都会发生变化 我是否需要手动检查边界偏移
MouseInfo.getPointerInfo().getLocation()
,但它返回相对于JFrame窗口而不是g2d画布的鼠标位置
例如,当我的鼠标光标位于g2d画布上的坐标(0,0)处时,MouseInfo.getPointerInfo().getLocation()
将返回(8,30),因为窗口周围有边框
我可以只考虑偏移量,但每个操作系统的窗口边框大小都会发生变化
我是否需要手动检查边界偏移中的操作系统和系数,或者是否有更快的方法?使用此方法解决了问题。我需要使用这种方法:
myJFrame.getContentPane().addMouseListener(listener);
evt.getPoint()
看来是解决你问题的好办法。谢谢你,约翰!那篇文章的更新彻底解决了我的问题。我需要使用以下代码添加一个框架:
frame.getContentPane().addMouseListener(listener)
,然后使用evt.getPoint()