0

好吧,

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

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

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

我认为要么是我向错误的组件触发事件,要么是我误解了调度 mouseEvents 的实际工作方式。

我很困惑,并希望对如何做任何建议。

谢谢,-托尼

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

更新:我的事件实际上是被分派的,只是没有发送到加载到 JFrame 中的小程序上。为什么小程序不能识别点击?也许它在小程序后面点击?

已解决:我需要做的是触发 MOUSE_PRESSED,然后触发 MOUSE_RELEASED 事件。仅仅发射 MOUSE_CLICKED 并没有真正做到我想要的。我觉得我花了这么多时间来弄清楚这一点很愚蠢。

4

2 回答 2

0

我需要做的是触发 MOUSE_PRESSED 然后触发 MOUSE_RELEASED 事件。仅仅发射 MOUSE_CLICKED 并没有真正做到我想要的。我觉得我花了这么多时间来弄清楚这一点很愚蠢。

于 2013-10-31T13:14:12.523 回答
0

我认为您正在寻找 java Robot 类,这个:

Robot = new Robot();

然后使用方法 mouseMove() 例如

Robot.mouseMove(x,y);

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

于 2013-10-31T11:53:51.797 回答