Java 为什么“robot.keyrease(KeyEvent.VK_CONTROL)”是必需的?
使用Robot类时,以下内容的含义是什么:Java 为什么“robot.keyrease(KeyEvent.VK_CONTROL)”是必需的?,java,junit4,awtrobot,Java,Junit4,Awtrobot,使用Robot类时,以下内容的含义是什么: robot.keyRelease(KeyEvent.VK_CONTROL); 下面的代码不足以发送事件吗 Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_CONTROL); keyPress将发送一个按键被按下的事件钥匙释放将发送钥匙已释放的事件。如果要模拟键入,可能需要执行以下操作: public class SuperRobot extends Robot { public v
robot.keyRelease(KeyEvent.VK_CONTROL);
下面的代码不足以发送事件吗
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
keyPress
将发送一个按键被按下的事件<代码>钥匙释放将发送钥匙已释放的事件。如果要模拟键入,可能需要执行以下操作:
public class SuperRobot extends Robot {
public void typeKey(int keyCode) {
keyPress(keyCode);
delay(20);
keyRelease(keyCode);
}
}
public static void main(String[] args) {
try {
SuperRobot r = new SuperRobot();
// Now, let's press Ctrl+A
r.keyPress(KeyEvent.VK_CONTROL);
r.typeKey(KeyEvent.VK_A);
r.keyRelease(KeyEvent.VK_CONTROL);
} catch (Exception ex) { // Either AWTException or SecurityException
System.out.println("Oh no!");
}
}
请注意,要键入带有掩码的内容,如Ctrl+a,我们首先按下Ctrl,然后模拟按下并释放a,然后释放Ctrl。一般来说,机器人应该或多或少准确地模拟用户的行为
robot.keyRelease(KeyEvent.VK_CONTROL);
用于释放按键上的按键效果,如果您使用
机器人按键(KeyEvent.VK_控制);
然后您也应该释放它,否则一旦java应用程序运行,您的键盘将继续运行,实际上按下了CTRL键。因此,如果我想从帧发送事件,我只能做:Robot Robot=new Robot();机器人按键(KeyEvent.VK_控制);robot.keyPress(KeyEvent.VK_P)?我是否使用了释放方法?或者按一下就足够了?它就像一个键盘。。。按下可向下移动键,释放可向上移动键。所以这取决于你想测试什么,但是想象一下在现实生活中运行测试。如果您想按住该键,只需按一下即可。如果要按下并释放(又称键入)键,则需要同时使用这两个键。老实说,去玩玩吧。。。这就像4行代码,比我的解释更有启发性。