Java机器人不工作

时间:2015-03-08 20:06:11

标签: java awtrobot

我正在开展一个简单的语音识别项目。我有一个名为scroll up的命令,我想使用该类按UP键。

这是代码:

        else if(resultText.equalsIgnoreCase("scroll up"))
        {
            try {
                Robot robot = new Robot();
                robot.delay(5000);
                robot.keyPress(KeyEvent.VK_UP);
                robot.delay(1000);
                robot.keyPress(KeyEvent.VK_UP);
                robot.delay(1000);
                robot.keyPress(KeyEvent.VK_UP);
            }
            catch (AWTException e){
                e.printStackTrace();
            }
        }

我已经导入了这些

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

现在相同的代码在另一个项目中运行良好,但在当前项目中却不行。我做错了什么?

2 个答案:

答案 0 :(得分:2)

试试这个:

else if (resultText.equalsIgnoreCase("scroll up")) {
    try {
        Robot robot = new Robot();
        robot.delay(5000);
        robot.keyPress(KeyEvent.VK_UP);

        robot.delay(1000);
        robot.keyRelease(KeyEvent.VK_UP);
        robot.keyPress(KeyEvent.VK_UP);
        robot.delay(1000);
        robot.keyRelease(KeyEvent.VK_UP);
        robot.keyPress(KeyEvent.VK_UP);
        robot.delay(1000);
        robot.keyRelease(KeyEvent.VK_UP);

您必须释放相同的按钮。

答案 1 :(得分:1)

从您的评论中,我了解到输入来自命令行(任何时候非常重要的事实都包含在您的帖子中)。这意味着命令窗口(或控制台面板 - 在IDE中)包含系统焦点,因此UP不执行任何操作。

在代码中添加requestFocus(),这应该会有所帮助。