【问题标题】:Java robot not workingJava机器人不工作
【发布时间】:2015-03-08 20:06:10
【问题描述】:

我正在做一个简单的语音识别项目。我有一个名为 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;

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

【问题讨论】:

  • 究竟是什么不起作用?语法还是运行时?
  • @MouseEvent 当我说“向上滚动”时,在控制台中它确实显示“向上滚动”,但没有任何反应,我的意思是它没有按下向上按钮。
  • Kelsey 事件将被发送到当前关注的组件。还要确保你也调用 keyRelease

标签: java awtrobot


【解决方案1】:

试试这个:

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);

您必须释放相同的按钮。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      相关资源
      最近更新 更多