【问题标题】:Get mouse position in JFrame considering window bounds [duplicate]考虑窗口边界在JFrame中获取鼠标位置[重复]
【发布时间】: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


【解决方案1】:

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

  1. 添加事件监听器:

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

    evt.getPoint()
    

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多