考虑 window 边界获取 JFrame 中的鼠标位置

Get mouse position in JFrame considering window bounds

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

的鼠标位置

例如,当我的鼠标光标在g2d canvas上的坐标(0,0)时,MouseInfo.getPointerInfo().getLocation()会因为边框的原因return(8,30)围绕 window.

我可以只考虑偏移量,但是 window 每个 OS 的边框大小都会变化。

我是否需要手动检查 OS 和边框偏移的因素,还是有更快的方法?

问题已通过 post 解决。我需要使用这种方法:

  1. 添加事件侦听器:

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

    evt.getPoint()