我正在开展一个简单的语音识别项目。我有一个名为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;
现在相同的代码在另一个项目中运行良好,但在当前项目中却不行。我做错了什么?
答案 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()
,这应该会有所帮助。