2015-03-08 123 views
1

我正在开发一个简单的语音识别项目。我有一个叫scroll up的命令,我想用这个类按UP键。Java机器人不工作

这是代码:

 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; 

现在同样的代码效果很好另一个项目,但不是在本项目。我究竟做错了什么?

+0

什么不工作?语法或运行时? – Mordechai 2015-03-08 20:30:46

+0

@MouseEvent当我说'向上滚动'时,它在控制台中显示'向上滚动',但没有任何反应,我的意思是它没有按下向上按钮。 – Robin 2015-03-08 20:33:37

+2

Kelsey活动将发送给目前专注的合作伙伴。还请确保您致电keyRelease以及 – MadProgrammer 2015-03-08 20:38:37

回答

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

你必须释放相同的按钮。

+0

谢谢。但它现在还在工作。 – Robin 2015-03-08 20:18:59

1

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

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