如何在 Robot Class KeyEvent 参数中放置一个 String 变量?

How do you put a String variable in the Robot Class KeyEvent parameter?

我在 Java 中使用机器人 Class,我创建了一个用于按键的静态方法。我的问题是我希望能够使用主方法中的输入按下任意一个键,但是 keyPress 方法和 keyRelease 方法的参数不接受字符串。而且我不想使用很多 if 语句来按下那个键。这是我的代码:

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

现在我想使用键变量(从我的主要方法输入)来决定按哪个键。我打算只在字符串中使用大写字母(例如 "A" 或 "B"),并将 keyPress 和 keyRelease 参数中的 (KeyEvent.VK_A) 替换为 (KeyEvent.VK_ + 键)。但是后来我意识到它不接受或使用String参数,那我该怎么办?

如果我理解您的问题,您可以将键码解析为机器人按键方法。您不能使用 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 是什么。它只是一个带有键码的映射整数。

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)开始。现在我可以成功地从键盘获取输入了。如果还有人想看 link,这里是:Key Codes.