我想将鼠标锁定在JFrame中。也就是说,鼠标不能保留JFrame的内容(除非用户点击转义,alt-tab或窗口否则失去焦点)。想法?
谢谢!
答案 0 :(得分:3)
我不确定是否有更自动的方法,但您可以使用Robot class来设置鼠标位置。因此,在事件处理程序中,当JFrame获得焦点时,您可以开始观察鼠标移动事件,当鼠标移动时,只需确保它保持在JFrame内。如果它离开JFrame,你可以使用Robot类来设置鼠标的位置以便返回。
然后当窗口失去焦点时,您可以从鼠标移动事件中取消注册。
答案 1 :(得分:2)
Robot类是这种类型的理想选择,但我建议采用另一种方法。
也许让游戏全屏(最大化窗口窗格)可以实现你想要的。鼠标将无法退出窗口,并且不需要使用丑陋的Robot-esque hack来强制用户留在边框内。
答案 2 :(得分:1)
我刚才想到的另一种解决方法 - 将光标锁定到Frame的中心,并使其不可见。然后渲染一个软件光标所在的真实光标。 然后,您可以将光标锁定到您想要的任何区域。
答案 3 :(得分:0)
如果你不在游戏中使用鼠标按钮2,那么这是一个偷偷摸摸的人可以工作。 使用机器人按下BUTTON2。
这个想法是鼠标被拖动,而不是被移动。每当您获得鼠标移动事件时,都是因为用户已经释放了button2,因此请再次按下它。
每当您获得鼠标拖动事件时,如果鼠标位于窗口之外,请将其重新放入。