【发布时间】:2016-06-24 18:43:55
【问题描述】:
所以我想制作一个简单的 java 程序,在按下键 T 之后按下键,然后输入。并且重复这个 everz 3 秒我的代码如下:`
public static void main(String[] args) {
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_T);
robot.keyPress(KeyEvent.VK_KP_UP);
robot.keyRelease(KeyEvent.VK_KP_UP);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}catch (Exception ex) {
ex.printStackTrace();
}
}
}, 3, 3, TimeUnit.SECONDS);
}
` 它按 T 但之后我得到一个异常......
java.lang.IllegalArgumentException: Invalid key code
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Unknown Source)
at Main$1.run(Main.java:21)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
` 请帮我解决它。
【问题讨论】:
-
您可能只需要
KeyEvent.VK_UP而不是KeyEvent.VK_KP_UP在这里查看常量...docs.oracle.com/javase/7/docs/api/java/awt/event/…