我正在用Java构建一个简单的图形应用程序,它要求我在2D图形画布中获得鼠标位置。我使用了代码MouseInfo.getPointerInfo().getLocation()
,但它返回了相对于JFrame窗口而不是g2d画布的鼠标位置。
例如,当我的鼠标光标位于g2d画布上的坐标(0,0)时,由于窗口周围的边框,MouseInfo.getPointerInfo().getLocation()
将返回(8,30)。
我可以考虑偏移量,但每个操作系统的窗口边框大小都会发生变化。
我是否需要手动检查边框偏移中的操作系统和因子,还是有更快的方法?
答案 0 :(得分:1)
使用此post解决了问题。我需要使用这种方法:
添加事件监听器:
myJFrame.getContentPane().addMouseListener(listener);
在鼠标事件函数中获取鼠标位置:
evt.getPoint()