停止java.awt.Robot中的所以我在做一个程序,它利用机器人来复制和粘贴文本。然而,当谈到如何在动作中间停止机器人时,我遇到了困难(因为整个应用程序都在GUI中,我更喜欢使用按钮)。现在我拥有它,这样Robot就可以创建并且在点击不同的按钮时启动,并且在一定数量的消息之后停止。从我所了解的你需要停止它的线程,但我不知道如何做到这一点。有一个JButton
public void initSpam() throws AWTException
{
Robot bot = new Robot();
isRunning = true;
int delayTime;
if(isDefault)
delayTime = DEFAULT;
else
delayTime = customTime;
StringSelection selection = new StringSelection(spam);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);
bot.delay(1250);
for (int i = 0; i < buffer; i++) {
bot.keyPress(KeyEvent.VK_CONTROL);
bot.keyPress(KeyEvent.VK_V);
bot.keyRelease(KeyEvent.VK_CONTROL);
bot.keyRelease(KeyEvent.VK_V);
bot.keyPress(KeyEvent.VK_ENTER);
bot.keyRelease(KeyEvent.VK_ENTER);
bot.delay(delayTime);
}
}
以上是按下另一个JButton时调用的方法。如果有人能指导我如何做到这一点,并解释所有这些线程如何工作/如何正确使用它(假设我不太了解),我将不胜感激。 谢谢!在initSpam
workThread.interrupt();
补充:
第一套完美的作品!这使得现在更有意义,所以谢谢你。你知道任何可以阅读关于线程的地方吗?我猜如果我更好地理解它们,它可能会帮助我找出不使用它们的地方和位置(如果需要)。 – finaris
[Oracle教程](https://docs.oracle.com/javase/tutorial/essential/concurrency/threads.html)可能是一个好的开始。 –