我在Java中使用Robot类,我创建了一个按键的静态方法。我的问题是我希望能够使用main方法的输入按任何键,但keyPress方法和keyRelease方法的参数不接受String。而且我不想使用很多if语句按下该键。这是我的代码:
public static void keyType(String key) throws AWTException {
Robot r = new Robot();
r.keyPress(KeyEvent.VK_A);
r.keyRelease(KeyEvent.VK_A);
}
现在我想使用键变量(从我的main方法输入)来决定按哪个键。我打算在字符串中使用大写字母(例如" A"或" B"),并将keyPress和keyRelease参数中的(KeyEvent.VK_A)替换为(KeyEvent.VK_A) KeyEvent.VK_ + key)。但后来我意识到它没有接受或使用String参数,所以我该怎么办?
答案 0 :(得分:1)
如果我理解你的问题,你可以解析键码到机器人按键方法。你不能使用KeyEvent.VK_+"A"
但你可以使用65
。
而是KeyEvent.VK_A
您可以使用65
,这是A
的关键代码。
private void keyType(char key) {
int keyCode = (int) key;
Robot r = new Robot();
r.keyPress(KeyEvent.VK_A);
r.keyRelease(KeyEvent.VK_A);
}
如果您查看keyEvent.class
的源代码,您可以看到实际上VK_N
是什么。它只是一个带有密钥代码的映射int。
public class KeyEvent extends InputEvent {
public static final int VK_A = 65;
public static final int VK_B = 66;
public static final int VK_C = 67;
public static final int VK_D = 68;
public static final int VK_E = 69;
答案 1 :(得分:0)
实际上,我发现了另一种方法。这个参数的参数是int,所以我找到了键盘上每个键的键码,从A(65)开始。现在我可以成功从键盘输入。如果其他人想要查看链接,请点击此处:Key Codes。