【问题标题】:Java - Detect if mouse is pressed down anywhere on the screenJava - 检测鼠标是否在屏幕上的任何位置按下
【发布时间】:2018-08-07 13:07:30
【问题描述】:

我希望我的程序检测鼠标是否在屏幕上的任何位置按下,而不仅仅是程序窗口。它还应该检测鼠标何时被释放。在 Java 中是否可以在我的程序窗口之外检测到这一点?

【问题讨论】:

  • 我不确定它是否只适用于您的程序,但您是否尝试过使用鼠标处理程序
  • 是的!这是可能的。您需要添加一个MouseMotionListener 并监听mouseDragged 事件
  • @Mohit 你确定MouseMotionListener 也支持MousePressedMouseReleased
  • Mousemotionlistener 是否在程序窗口之外工作?
  • “屏幕上的任何位置” 您的应用的业务是什么。知道我在屏幕上的其他地方点击了什么吗?

标签: java swing mouseevent detect awtrobot


【解决方案1】:

java.awt.event.MouseMotionListener 只会为您提供有关应用程序窗口内鼠标移动的信息。对于在该窗口之外发生的事件,MouseInfo.getPointerInfo 是没有办法的。 这是Java mouse motion anywhere on screen 的副本。

【讨论】:

  • 我要求鼠标按下...。看看这个家伙写了什么:你只会收到 mouseMoved 事件,永远不会收到 mouseDragged 事件。这是因为无法接收有关主窗口外点击的信息。
  • @AllesLegit 尝试使用MouseListener,而不是你可以找到它here
  • @MartinŠpelina 你为什么不早点告诉他?他在他的问题中写道,他需要鼠标按下并释放
【解决方案2】:

也许您应该查看Java Native Hook 的全局鼠标和按键监听器

【讨论】:

    猜你喜欢
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 2019-02-22
    • 2014-12-09
    相关资源
    最近更新 更多