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
也支持MousePressed
和MouseReleased
?
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 - 检测鼠标是不是在屏幕上的任何位置按下的主要内容,如果未能解决你的问题,请参考以下文章
为啥键/鼠标侦听器检测到鼠标按下而不是按键? (Java awt 窗口)