考虑窗口边界,在JFrame中获取鼠标位置

时间:2015-07-20 16:12:04

标签: java swing jframe java-2d drawing2d

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

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

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

我是否需要手动检查边框偏移中的操作系统和因子,还是有更快的方法?

1 个答案:

答案 0 :(得分:1)

使用此post解决了问题。我需要使用这种方法:

  1. 添加事件监听器:

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

    evt.getPoint()