gpt4 book ai didi

java - 如何停止java桌面应用程序中移动鼠标的无限循环

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:11 25 4
gpt4 key购买 nike

我正在尝试创建一个桌面程序来移动鼠标,直到我按下例如java中的字母“q”。我创建了一个窗口(JFrame),当我按下按钮时,鼠标开始移动。我的疑问与这部分有关:

while (true) {
for (int j = 1500; j <1600; j++) {
robot.mouseMove(j, 0);
robot.delay(100);
}
}

如何通过按字母来停止这个无限循环?

public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_Q) {
System.exit(0);
}
}

为什么这不起作用?(我需要按一个字母,因为程序运行时鼠标无法使用)提前致谢。

最佳答案

首先,您可能必须放弃事件处理程序。如果这个 while(true) 在 awt 事件队列上运行,那么您将占用整个 GUI,难怪它没有响应;在您从鼠标事件返回之前,无法触发其他事件。

你能提供更多代码吗?这不足以解释这种行为。

您可能需要启动一个线程来执行这项工作。

更新:

而不是同步调用您的 JavaRobot();方法,您需要在线程中运行它。用于测试的丑陋的黑客版本:

(new Thread(() -> JavaRobot())).start();

更简洁的版本可能会将线程保存在变量中,以便您可以使用另一个按钮中断它。如果您不喜欢自己处理线程但仍然在线程中运行任务,您也可以使用执行程序服务 API。

关于java - 如何停止java桌面应用程序中移动鼠标的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49783755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com