Java 如何将字符串变量放入Robot类KeyEvent参数中?

Java 如何将字符串变量放入Robot类KeyEvent参数中?,java,string,keypress,keyevent,awtrobot,Java,String,Keypress,Keyevent,Awtrobot,我在Java中使用Robot类,我创建了一个按键的静态方法。我的问题是,我希望能够使用main方法的输入按任意键,但keyPress方法和keyrease方法的参数不接受字符串。我不想用很多if语句来按那个键。这是我的密码: public static void keyType(String key) throws AWTException { Robot r = new Robot(); r.keyPress(KeyEvent.VK_A); r.keyRelease(KeyEven

我在Java中使用Robot类,我创建了一个按键的静态方法。我的问题是,我希望能够使用main方法的输入按任意键,但keyPress方法和keyrease方法的参数不接受字符串。我不想用很多if语句来按那个键。这是我的密码:

public static void keyType(String key) throws AWTException {
  Robot r = new Robot();
  r.keyPress(KeyEvent.VK_A);
  r.keyRelease(KeyEvent.VK_A);
}

现在我想使用key变量(来自main方法的输入)来决定按哪个键。我计划只在字符串中使用大写字母(如“a”或“B”),并将keyPress和keyRelease参数中的(KeyEvent.VK_a)替换为(KeyEvent.VK_+key)。但后来我意识到它不接受或使用字符串参数,那我该怎么办?

如果我理解你的问题,你可以将keycode解析为robot keypress方法。你不能使用
KeyEvent.VK+“A”
,但你可以使用
65
。 相反,您可以使用
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
是什么。它只是带有keycodes的映射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;

事实上,我找到了另一种方法。这个参数的参数是int,所以我找到了键盘上每个键的键代码,从A(65)开始。现在我可以成功地从键盘获得输入。如果其他人想查看该链接,请点击此处:。

在类区域中声明字符串键变量。所以你可以通过
keyType
method来访问它,我知道了,但是我的问题是我不能把key变量放在KeyEvent参数中。我想做一些类似于,
(KeyEvent.VK+key)
的事情,但是KeyEvent参数不是字符串类型。谢谢,真的很有帮助!我在下面写了类似的东西,你的答案就在我打字的时候出现了!谢谢你的帮助!