Java - 检测鼠标是不是在屏幕上的任何位置按下

Posted

技术标签:

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

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

【问题讨论】:

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

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

【讨论】:

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

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

【讨论】:

以上是关于Java - 检测鼠标是不是在屏幕上的任何位置按下的主要内容,如果未能解决你的问题,请参考以下文章

Godot:检测按下的鼠标是不是在按钮上方

如何检测是不是在 HTML 页面上的任意位置按下了某个键?

在 JPanel 上的任何位置检测鼠标进入/退出事件

为啥键/鼠标侦听器检测到鼠标按下而不是按键? (Java awt 窗口)

如何 GetMousePosition 在屏幕上的任何位置,在窗口(或任何视觉)边界之外

如何查看用户是不是在屏幕上的同一位置按下 2 秒?