运行时,把输入法关掉,切换成系统自带的输入法即可;

第二个类是自定义的键值Map集合,主要是为了方便输入字符串,有需要的可以自行添加;

主要的代码如下,会创建一个名称为Automaton.java的类,并输出"Hellow Word,I am a skynet"

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.IOException; public class Hellow {
public static void main(String[] args) throws AWTException, InterruptedException, IOException { // 创建机器人
Robot robot = new Robot();
// 设置默认休眠时间
robot.setAutoDelay(); // 按下alt键
robot.keyPress(KeyEvent.VK_ALT);
// 按下shift键
robot.keyPress(KeyEvent.VK_SHIFT);
// 按下n键
robot.keyPress(KeyEvent.VK_N); robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_N); // 连续两次上键
robot.keyPress(KeyEvent.VK_UP);
robot.keyRelease(KeyEvent.VK_UP); // 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); // 设置默认休眠时间20毫秒
robot.setAutoDelay();
for (String c : "class".split("")) {
if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 输入名字
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 设置默认休眠时间300毫秒
robot.setAutoDelay();
// 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); String automaton = "Automaton";
robot.setAutoDelay();
for (String c : automaton.split("")) {
if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
robot.setAutoDelay();
// 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); // 连续三次下键
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN); // 创建main方法
// 设置默认休眠时间,让输入字母快一点
robot.setAutoDelay();
for (String c : "main".split("")) { if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 输入名字
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 设置休眠时间为300毫秒
robot.setAutoDelay();
// 按下弹起alt+/的快捷键
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_SLASH);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_SLASH);
// 休眠500,过快自动提示可能不会出现
robot.delay();
// 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); // 设置默认休眠时间,让输入字母快一点
robot.setAutoDelay();
for (String c : "syso".split("")) {
if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 按下弹起alt+/的快捷键
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_SLASH);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_SLASH);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_QUOTE);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_QUOTE);
// 休眠50,过快自动提示可能不会出现
robot.delay();
// 循环输入Hellow Word
for (String c : "Hellow Word,I am a skynet".split("")) {
if (Character.isUpperCase(c.charAt())) {
// 输入名字
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 保存 按下弹起ctrl+s
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_S);
// 运行 按下弹起ctrl+F11
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_F11);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_F11); }
}

下面是储存键值的map类,只有一些常用的键值,有需要请自行添加

import java.awt.event.KeyEvent;
import java.util.HashMap;
import java.util.Map; public class KeyMap {
public static Map<String,Integer> keyMap;
static{
keyMap = new HashMap<String,Integer>();
//设置map的值
//数字
keyMap.put("1", KeyEvent.VK_1);
keyMap.put("2", KeyEvent.VK_2);
keyMap.put("3", KeyEvent.VK_3);
keyMap.put("4", KeyEvent.VK_4);
keyMap.put("5", KeyEvent.VK_5);
keyMap.put("6", KeyEvent.VK_6);
keyMap.put("7", KeyEvent.VK_7);
keyMap.put("8", KeyEvent.VK_8);
keyMap.put("9", KeyEvent.VK_9);
keyMap.put("0", KeyEvent.VK_0); //运算符
keyMap.put("/", KeyEvent.VK_SLASH);
keyMap.put("+", KeyEvent.VK_PLUS);
keyMap.put("-", KeyEvent.VK_MINUS);
keyMap.put(" ", KeyEvent.VK_SPACE);
keyMap.put("=", KeyEvent.VK_EQUALS); //特殊字符
keyMap.put(":", KeyEvent.VK_COLON);
keyMap.put(",", KeyEvent.VK_COMMA);
keyMap.put(".", KeyEvent.VK_PERIOD); //字母
keyMap.put("A",KeyEvent.VK_A);
keyMap.put("B",KeyEvent.VK_B);
keyMap.put("C",KeyEvent.VK_C);
keyMap.put("D",KeyEvent.VK_D);
keyMap.put("E",KeyEvent.VK_E);
keyMap.put("F",KeyEvent.VK_F);
keyMap.put("G",KeyEvent.VK_G);
keyMap.put("H",KeyEvent.VK_H);
keyMap.put("I",KeyEvent.VK_I);
keyMap.put("J",KeyEvent.VK_J);
keyMap.put("K",KeyEvent.VK_K);
keyMap.put("L",KeyEvent.VK_L);
keyMap.put("M",KeyEvent.VK_M);
keyMap.put("N",KeyEvent.VK_N);
keyMap.put("O",KeyEvent.VK_O);
keyMap.put("P",KeyEvent.VK_P);
keyMap.put("Q",KeyEvent.VK_Q);
keyMap.put("R",KeyEvent.VK_R);
keyMap.put("S",KeyEvent.VK_S);
keyMap.put("T",KeyEvent.VK_T);
keyMap.put("U",KeyEvent.VK_U);
keyMap.put("V",KeyEvent.VK_V);
keyMap.put("W",KeyEvent.VK_W);
keyMap.put("X",KeyEvent.VK_X);
keyMap.put("Y",KeyEvent.VK_Y);
keyMap.put("Z",KeyEvent.VK_Z);
//
}
}

java使用Robot类在eclipse上实现自动编写代码的更多相关文章

  1. java如何在eclipse编译时自动生成代码

    用eclipse写java代码,自动编译时,如何能够触发一个动作,这个动作是生成本项目的代码,并且编译完成后,自动生成的代码也编译好了, java编辑器中就可以做到对新生成的代码的自动提示? 不生成代 ...

  2. 在eclipse上集成安装阿里巴巴代码规约P3C插件

    在eclipse上集成安装阿里巴巴代码规约P3C插件 参照网址: https://jingyan.baidu.com/article/2d5afd6923e78b85a3e28e5e.html 首先进 ...

  3. Java关于Robot类的使用以及远程桌面的实现

    利用Robot实现效果是运行之后鼠标自动定位到整个屏幕坐标系的(635,454)位置,输入wangtianze package com.wtz.util; import java.awt.AWTExc ...

  4. Java关于Robot类的使用

    利用Robot类实现自动操作,实现效果是运行之后鼠标自动定位到整个屏幕坐标系的(635,454)位置,输入wangtianze package com.wtz.util; import java.aw ...

  5. java类在eclipse上打jar包,Linux上成功运行的实例

    1 eclipse下的java项目结构如下图所示: 2 打包的步骤如下: 3 修改minifest.mf文件:  4 .上传需要的三方jar包们和主类打的jar(案例是topV.jar)并且执行jav ...

  6. java http工具类和HttpUrlConnection上传文件分析

    利用java中的HttpUrlConnection上传文件,我们其实只要知道Http协议上传文件的标准格式.那么就可以用任何一门语言来模拟浏览器上传文件.下面有几篇文章从http协议入手介绍了java ...

  7. Selenium(基于JAVA语言)-》在eclipse上运行web项目在Mac系统上启动时提示nodename nor servname provided解决办法

    最近使用eclipse进行自动化测试时,遇到一种情况,无法调起浏览器,且有报错,如下: org.openqa.selenium.WebDriverException: failed to lookup ...

  8. JAVA中使用FTPClient实现文件上传下载实例代码

    一.上传文件 原理就不介绍了,大家直接看代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  9. Eclipse 中怎样自动格式化代码?

    首先 有一个 检查代码风格的工具叫checkstyle,具体怎么下载,请自行百度.. 当你在eclipse安装好 checkstyle后,对于使用google标准的人来说,选择一个项目,右键,点击ch ...

随机推荐

  1. Java for LeetCode 095 Unique Binary Search Trees II

    Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...

  2. SpringBoot学习笔记(10):使用MongoDB来访问数据

    SpringBoot学习笔记(10):使用MongoDB来访问数据 快速开始 本指南将引导您完成使用Spring Data MongoDB构建应用程序的过程,该应用程序将数据存储在MongoDB(基于 ...

  3. jQuery 的文档操作

    在 js 中也有DOM操作,也可以进行 增删改查 ,但是通过 js 的DOM操作会发现,我的天哪,代码好多.但是 jQuery的文档操作就少了很多. js 中 DOM 的示例 : var box = ...

  4. Windows、Linux、Mac OSX编译jni动态库

    在不同平台下默认调用不同名字的动态库,在Windows平台调用name.dll,在Linux平台调用libname.so,在OSX下调用libname.jnilib.不同平台下的编译的方法也有些区别. ...

  5. mybatis中xml字段空判断及模糊查询

    由于业务特殊的查询需求,需要下面的这种查询,一直感觉模糊不清,本地测试一下顺便做个总结 贴一段xml代码,如下: <if test="receivedName != null and ...

  6. Mysql处理字符串函数(转)

    http://www.jb51.net/article/27458.htm 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函 ...

  7. tensorboard 用法

    step1:  代码中把summary写到文件中 step2: dos窗口执行tensorboard命令 切换到代码所在目录下,输入: tensorboard --logdir=./tmp/graph ...

  8. HihoCoder1652 : 三角形面积和2([Offer收割]编程练习赛38)(几何)(不会几何,占位)

    描述 如下图所示,在X轴上方一共有N个三角形.这些三角形的底边与X轴重合,底边上两个顶点的坐标分别是(Li, 0)和(Ri, 0),底边的对顶点坐标是(Xi, Yi).其中Li ≤ Xi ≤ Ri 且 ...

  9. MySQL与EXCEL sum sumif sumifs 函数结合_品牌汇总_20161101

    计算一些数不难,整体来说还是要培养自我的逻辑意识,逻辑清楚,代码自然而然就知道,总体上训练自己的逻辑,一个是从用户角度,一个是从产品角度. 用户角度需要考虑的是用户的活跃度,具体又可以细分为用户的注册 ...

  10. MySQL三个列组成唯一值查询_开源中国问题练习_20161026

    问题地址:https://www.oschina.net/question/2923955_2202674 按 service_collect_day分类以后,按 app_id,node_id,ser ...