在进行学习时,发现自己用robot类写鼠标点击事件的循环,然后以线程的方式进行运行,但是如果想要正确的终止,一般应该使用interrupt,但是如果在main函数中对这个线程进行interrupt,会抛出无法捕获的interruptexception(因为里面并没有使用sleep方法),while循环进行判断时可能是robot报错之后会将interrupt标志位重置,导致死循环,求解决或说明
代码如下
public class Click_Thread implements Runnable {
public void run()
{
try {
Robot robot = new Robot();
while(!Thread.currentThread().isInterrupted())
{
movemouse(robot, 1421,456);
pressmouseleft(robot);
robot.delay(1000);
movemouse(robot, 1000, 494);
pressmouseleft(robot);
robot.delay(1000);
movemouse(robot, 1166, 635);
pressmouseleft(robot);
robot.delay(1000);
}
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("捕获异常");
e.printStackTrace();
}
System.out.println("????");
}
private static void movemouse(Robot robot,int x,int y)
{
robot.mouseMove(x,y);
robot.delay(500);
}
private static void pressmouseleft(Robot robot)
{
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(10);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(500);
}
这个是那个线程类,然后用一个主函数启动