【发布时间】:2015-10-09 20:40:32
【问题描述】:
我正在用 Java 构建一个简单的图形应用程序,它需要我在 2D 图形画布中获取鼠标位置。我使用了代码MouseInfo.getPointerInfo().getLocation(),但它返回的是相对于 JFrame 窗口而不是 g2d 画布的鼠标位置。
例如,当我的鼠标光标位于 g2d 画布上的坐标 (0,0) 时,MouseInfo.getPointerInfo().getLocation() 将返回 (8,30),因为窗口周围有边框。
我可以只考虑偏移量,但每个操作系统的窗口边框大小都会发生变化。
我是否需要手动检查操作系统并考虑边框偏移量,还是有更快的方法?
【问题讨论】:
-
This post 看起来可以很好地解决您的问题。
-
谢谢,约翰!该帖子中的更新完全解决了我的问题。我需要使用以下代码添加一个框架:
frame.getContentPane().addMouseListener(listener);,然后使用evt.getPoint()在事件监听器中获取鼠标位置
标签: java swing jframe java-2d drawing2d