使用dispatchevent生成mousemove事件?

3
有没有办法使用java.awt.Component.dispatchEvent(AWTEvent)触发mousemove事件?
.dispatchEvent(new MouseEvent(client.a
                           .getComponentAt(1, 1),
                               MouseEvent.MOUSE_MOVED,
                               System.currentTimeMillis(),
                               MouseEvent.NOBUTTON,
                               x,y,
                               1,
                               false));

我现在明白了,但它并没有执行鼠标移动操作。我应该怎么做?
编辑: 我尝试过下面这种方法,但它不起作用:
.dispatchEvent(new MouseEvent(client.a
                           .getComponentAt(1, 1),
                               MouseEvent.MOUSE_MOVED,
                               System.currentTimeMillis(),
                               MouseEvent.NOBUTTON,
                               x,y,
                               0,
                               false));

感谢您,Jeffrey。

我不知道以你所尝试的方式来实现这个的方法,因为根据我的理解,MouseEvent 是用于向组件发送鼠标消息而不是操作系统。通常我会使用 Robot 类或者 JNA 来实际移动屏幕上的鼠标光标。 - Hovercraft Full Of Eels
你想让你的组件对未发生的MouseEvent做出反应(伪造鼠标事件),还是想在屏幕上移动光标? - Robin
像一个虚拟鼠标。在小程序上。 - Jeffrey Barneveld
@JeffreyGearsoffun:在评论中给出了答案。如果你想要官方的回答,我会将其作为一个“答案”发布。 - Hovercraft Full Of Eels
2个回答

4

我使用Abbot来模拟我的应用程序中的MouseEvent。最近,它被Oracle员工更新以支持Java 6、JUnit 4等。


3

据我所知,按照你的方式无法实现此操作,因为MouseEvent(就我所了解的而言)是用于向组件发送鼠标消息而不是操作系统。通常我会使用Robot类或JNA来实际移动屏幕上的鼠标光标。


你能给我一个解释或链接,如何使用JNA实现它吗? - Jeffrey Barneveld
@JeffreyGearsoffun:为什么不让自己更轻松一些,先尝试使用Robot类呢? - Hovercraft Full Of Eels
我想要一个虚拟鼠标,而不是主光标移动。它只能被小程序使用。 - Jeffrey Barneveld
@JeffreyGearsoffun:好的,现在我有点困惑了。请告诉我你所说的“虚拟鼠标”是什么意思? - Hovercraft Full Of Eels
一个只能在小程序中使用的鼠标,就像你在机器人上看到的那样。 - Jeffrey Barneveld
我想我明白了,顺便让我测试一下。 - Jeffrey Barneveld

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接