如何将鼠标锁定在JFrame中

时间:2010-03-30 05:36:02

标签: java swing jframe

我想将鼠标锁定在JFrame中。也就是说,鼠标不能保留JFrame的内容(除非用户点击转义,alt-tab或窗口否则失去焦点)。想法?

谢谢!

4 个答案:

答案 0 :(得分:3)

我不确定是否有更自动的方法,但您可以使用Robot class来设置鼠标位置。因此,在事件处理程序中,当JFrame获得焦点时,您可以开始观察鼠标移动事件,当鼠标移动时,只需确保它保持在JFrame内。如果它离开JFrame,你可以使用Robot类来设置鼠标的位置以便返回。

然后当窗口失去焦点时,您可以从鼠标移动事件中取消注册。

答案 1 :(得分:2)

Robot类是这种类型的理想选择,但我建议采用另一种方法。

也许让游戏全屏(最大化窗口窗格)可以实现你想要的。鼠标将无法退出窗口,并且不需要使用丑陋的Robot-esque hack来强制用户留在边框内。

答案 2 :(得分:1)

我刚才想到的另一种解决方法 - 将光标锁定到Frame的中心,并使其不可见。然后渲染一个软件光标所在的真实光标。 然后,您可以将光标锁定到您想要的任何区域。

答案 3 :(得分:0)

如果你不在游戏中使用鼠标按钮2,那么这是一个偷偷摸摸的人可以工作。 使用机器人按下BUTTON2。

这个想法是鼠标被拖动,而不是被移动。每当您获得鼠标移动事件时,都是因为用户已经释放了button2,因此请再次按下它。

每当您获得鼠标拖动事件时,如果鼠标位于窗口之外,请将其重新放入。