Ai
2 Star 3 Fork 1

汪少棠/java-se

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ClickTask.java 2.45 KB
一键复制 编辑 原始数据 按行查看 历史
汪少棠 提交于 2021-08-29 11:22 +08:00 . Java 计时器 Timer 与 定时任务 TimeTask
package org.example.se;
import java.awt.*;
import java.awt.event.InputEvent;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Created by Administrator on 2018/6/23 0023.
* 创建模拟用户单击的定时器任务
* 可以创建一次执行或重复执行的任务
* TimeTask 类似 Thread 类
*/
public class ClickTask extends TimerTask {
//用户单击计数
private AtomicInteger atomicInteger = new AtomicInteger(0);
//同样实现run方法
@Override
public void run() {
//单数次与偶数次分别单击桌面两个不同的位置
if (atomicInteger.addAndGet(1) % 2 == 0) {
clickScreenByXY(100, 300);
} else {
clickScreenByXY(1200, 300);
}
System.out.println(new Date() + " click " + atomicInteger.get() + " time ,Thread name is :" + Thread.currentThread().getName());
}
/**
* 模拟用户单击屏幕指定区域,默认单击屏幕最中央
*
* @param x:x坐标
* @param y:y坐标
*/
public static final void clickScreenByXY(Integer x, Integer y) {
try {
/**创建工具包对象*/
Toolkit toolkit = Toolkit.getDefaultToolkit();
/**创建自动化对象*/
Robot robot = new Robot();
/**利用工具包对象获取屏幕分辨率*/
if (x == null) {
x = toolkit.getScreenSize().width / 2;
}
if (y == null) {
y = toolkit.getScreenSize().height / 2;
}
/**
* 移动鼠标到指定位置
* 然后按下鼠标左键,再松开,模拟单击操作
*/
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
} catch (AWTException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 创建定时任务
TimerTask timerTask = new ClickTask();
//创建定时器对象
Timer timer = new Timer();
/**相当于新开一个线程去执行定时器任务
* 定时器执行定时器任务,3 秒后开始执行任务
* 任务执行完成后,间隔 5 秒再次执行,循环往复
*/
timer.schedule(timerTask, 3000, 5000);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/wangmx1993/java-se.git
git@gitee.com:wangmx1993/java-se.git
wangmx1993
java-se
java-se
master

搜索帮助