3

我正在用 Java 构建一个简单的图形应用程序,它需要我在 2D 图形画布中获取鼠标位置。我使用了代码MouseInfo.getPointerInfo().getLocation(),但它返回相对于 JFrame 窗口而不是 g2d 画布的鼠标位置。

例如,当我的鼠标光标位于 g2d 画布上的坐标 (0,0) 时,MouseInfo.getPointerInfo().getLocation()由于窗口周围的边框,将返回 (8,30)。

我可以只考虑偏移量,但每个操作系统的窗口边框大小都会发生变化。

我需要手动检查操作系统并考虑边界偏移,还是有更快的方法?

4

1 回答 1

1

使用这篇文章解决了这个问题。我需要使用这种方法:

  1. 添加事件监听器:

    myJFrame.getContentPane().addMouseListener(listener);
    
  2. 在鼠标事件函数中获取鼠标位置:

    evt.getPoint()
    
于 2015-07-20T17:06:05.007 回答