所以。我有一个小问题。最有可能是因为我对 java 很陌生。无论如何,我的问题是:为什么这不起作用?
public static void pressKey(KeyEvent key) throws AWTException {
Robot r = new Robot();
r.keyPress(KeyEvent.key);
r.keyRelease(KeyEvent.key);
}
我怎样才能让这样的事情起作用?这会让我的生活轻松很多。提前谢谢
没有调用公共静态字段key
,KeyEvent
这就是为什么
//just pass they argument to your method as argument to those methods
r.keyPress(key);
r.keyRelease(key);
你必须使用
public static void pressKey(int key) throws AWTException {
Robot r = new Robot();
r.keyPress(key);
r.keyRelease(key);
}
让它工作
该“关键”变量是一个整数。KeyEvent 只是一种易于记忆的使用方式,但两者都是整数。
这意味着该方法使用integer,而不是KeyEvent。
假设我们有以下方法:
public static void press(int event) throws AWTException {
Robot bot = new Robot();
bot.keyPress(event);
bot.keyRelease(event);
}
它可以通过两种方式调用:KeyEvent 和整数。都一样(不要忘记添加“抛出”语句或“尝试/捕获”):
press(KeyEvent.VK_SLASH);
或者:
press(46);
如果我是对的,两者都会发送一个斜线(如果我错了,请纠正我)。但是 KeyEvents 更容易。
另外,请记住,并非所有键盘都具有相同的布局。根据密钥的不同,将发送完全不同的密钥,或者更糟糕的是,机器人会抛出 IllegalArgumentException。我建议您对不是字母/数字的字符使用 Alt 代码。