Java~学习使用Robot类实现聊天轰炸器 和 在画图板画出奥运五环

Robot类指南

  • 该类用于生成本机系统输入事件,用于测试自动化,自运行演示以及需要控制鼠标和键盘的其他应用程序。Robot的主要目的是促进Java平台实现的自动化测试。
  • 使用类生成输入事件与将事件发布到AWT事件队列或AWT组件不同,因为事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove实际上将移动鼠标光标,而不仅仅是生成鼠标移动事件。

构造方法

在这里插入图片描述

使用的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现聊天轰炸器

  • 具体实现细节我再代码里讲解的应该很详细, 但要注意程序运行开始前必须手动复制好要轰炸的信息 还要打开聊天框
import java.awt.*;
import java.awt.event.KeyEvent;

/**
 * Created with IntelliJ IDEA.
 * Description: If you don't work hard, you will a loser.
 * 实现一个聊天轰炸器
 * User: Listen-Y.
 * Date: 2020-08-10
 * Time: 8:58
 */
public class AutoBoom {
    
    

    //设置轰炸的次数
    private static int count = 10;
    //设置每次循环的间隔时间
    private static int time = 1000;

    public static void main(String[] args) throws AWTException {
    
    
        Robot robot = new Robot();
        //使用这个程序必须先将轰炸的内容复制好然后打开聊天框
        //所以预留5秒做准备
        System.out.println("复制好内容打开聊天框五秒后进行轰炸");
        for (int i = 5; i > 0; i--) {
    
    
            System.out.println(i + "秒");
            robot.delay(1000);
        }
        System.out.println("开始");
        for (int i = 0; i < count; i++) {
    
    
            //同时按下ctrl+v粘贴好 然后在同时释放ctrl+v
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_V);
            //让轰炸有间隔的进行
            robot.delay(time);
            //按下回车让信息发送
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
        }
    }
}

在这里插入图片描述

实现画图板画出奥运五环

  • 如同上面的聊天轰炸 在这个代码运行开始之前也是要手动打开画图板 并且选择椭圆形
/**
 * Created with IntelliJ IDEA.
 * Description: If you don't work hard, you will a loser.
 * 实现在画图板上画出奥运五环
 * User: Listen-Y.
 * Date: 2020-08-08
 * Time: 8:49
 */

import java.awt.*;
import java.awt.event.InputEvent;

public class RobotDemo {
    
    
    public static void main(String[] args) throws AWTException {
    
    
        Robot robot = new Robot();
        //等待5秒 5秒后必须打开画图板选中椭圆才可正常运行
        robot.delay(5000);

        //第一个圆
        int i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(400, 300);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(100);
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(650, 550);
        }
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(1000);       //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程

        //第二个圆
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(0, 300);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(600, 300);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(100);       //这里延迟0.1s,可以看到动态画的过程
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(850, 550);
        }
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(1000);       //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程

        //第三个圆
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(0, 300);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(800, 300);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(100);       //这里延迟0.2s,可以看到动态画的过程
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(1050, 550);
        }
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(200);       //画完一个圆停止0.1s,否则因为计算机执行速度太快,看不到动态作图的过程

        //第四个圆
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(0, 300);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(500, 425);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(100);       //这里延迟0.1s,可以看到动态画的过程
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(750, 675);
        }
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(200);       //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程

        //第五个圆
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(0, 300);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(700, 425);
        }
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(100);       //这里延迟0.1s,可以看到动态画的过程
        i = 10;
        while (i-- > 0) {
    
    
            robot.mouseMove(950, 675);
        }
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(200);       //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程


    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Shangxingya/article/details/107907227