Java鼠标事件派遣

时间:2013-10-31 11:29:54

标签: java events awt dispatch

好的,

我有一个JFrame,它使用类加载器将Applet加载到JPanel上,并添加到我的JFrame中。

java Applet是一个游戏,我试图为其创建一个“bot”。我希望能够最小化我的JFrame并允许“bot”继续运行。这个机器人只会点击加载的Applet中的x,y坐标。

经过研究后,似乎我想通过AWT事件Dispatch将鼠标事件发送到我的JFrame上。然而,这似乎不起作用。

我认为我要向错误的组件发送事件,或者误解了调度mouseEvents实际上是如何工作的。

我很难过,我希望能提出任何建议。

谢谢,-Tony

MouseEvent me = new MouseEvent(getContentPane(), // which
                                        MouseEvent.MOUSE_CLICKED, 
                                        System.currentTimeMillis(), 
                                        0, 
                                        50, 50, 
                                        1, 
                                        false); 
                                getContentPane().dispatchEvent(me);

更新:我的事件实际上已经被调度,而不是被加载到JFrame中的applet。为什么Applet无法识别点击次数?也许是在applet后面点击了?

解决:我需要做的是触发MOUSE_PRESSED然后触发MOUSE_RELEASED事件。只是触发MOUSE_CLICKED并没有真正做我想要的。我觉得很愚蠢,我花了很多时间才弄明白。

2 个答案:

答案 0 :(得分:0)

我认为你正在寻找java Robot类,具体来说:

Robot = new Robot();

然后使用方法mouseMove()例如

Robot.mouseMove(x,y);

然后使用mousePress / Release方法模拟点击。

答案 1 :(得分:0)

我需要做的是触发MOUSE_PRESSED然后触发MOUSE_RELEASED事件。只是触发MOUSE_CLICKED并没有真正做我想要的。我觉得很愚蠢,我花了很多时间才弄明白。