美文网首页
macbook在idea中用java的Robot不生效

macbook在idea中用java的Robot不生效

作者: 爱的旋转体 | 来源:发表于2020-07-11 12:06 被阅读0次
    • 问题描述:
      java中的java.awt.Robot可以控制系统的鼠标键盘等输入事件,这里不做详细介绍,本文主要是解决在macbook中用idea运行用robot写的java代码不生效的问题。
    • 解决办法:
      macbook需要授予idea控制电脑的权限,操作步骤:
      1)打开系统偏好设置,选择安全性与隐私;
      2)在tab中选择隐私,然后左侧导航栏选择辅助功能;
      3)将idea左侧的对勾选中,如果列表中没有idea,点击加号在应用程序中选择idea,添加进来。
    image.png
    image.png

    1.用下面这段代码做演示(画一个奥运五环)

    package com.xzp;
     
    import java.awt.*;
    import java.awt.event.InputEvent;
     
    public class AutoPaint {
        public static void main(String[] args) throws AWTException {
            Robot robot = new Robot();
            robot.delay(3000); //运行代码后,暂停三秒,留够时间去打开电脑自带的画板,并点击形状里面的椭圆形
     
            //1111111111111111111111
            int i = 10;
            while (i-- > 0) {
                robot.mouseMove(400, 300);
            }
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.delay(100);       //这里延迟0.1s,可以看到动态画的过程
            i = 10;
            while (i-- > 0) {
                robot.mouseMove(650, 550);
            }
            robot.mouseRelease(InputEvent.BUTTON1_MASK);
            robot.delay(1000);       //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程
     
            //222222222222222222222
            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,否则因为计算机执行速度太快,看不到动态作图的过程
     
            //3333333333333333333333333 
            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,否则因为计算机执行速度太快,看不到动态作图的过程
     
            //44444444444444444444444444
            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,否则因为计算机执行速度太快,看不到动态作图的过程
     
            //555555555555555555555555
            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,否则因为计算机执行速度太快,看不到动态作图的过程
     
     
        }
    }
    

    2.打开画图工具

    3.运行程序,然后在画图工具中选择椭圆

    image.png

    相关文章

      网友评论

          本文标题:macbook在idea中用java的Robot不生效

          本文链接:https://www.haomeiwen.com/subject/aoobcktx.html