Java - KeyPress(int)无法正常工作

时间:2012-02-19 23:58:25

标签: java

我的代码:

import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.util.Scanner;

public class main
{
    public static void main(String[] args) throws Exception
    {       
        Thread.sleep(3000);

        int x = 66;
        int y = (int) 'b';

        Robot r = new Robot();          
        r.keyPress  (y);
        r.keyRelease(y);
        r.keyPress(x);
        r.keyRelease(x)         
    }
}

让我感到困惑的是,如果变量是一个数字,如x = 66,那么r.keyPress(x)将输出b - 这是正确的。

但如果我有一个带有字符b的变量并执行:

char b = 'b';
int y = (int) b
r.keyPress(y)

它将输出2

System.out.print(y)将输出66.我很困惑。


我已经阅读了这些帖子,现在我的问题是......我将如何进行:  1.接受来自用户的字符串  2.使用r.keyPress键入字符串 ?

3 个答案:

答案 0 :(得分:3)

你的'b'基本上被转换成一个整数,给它值98.这是2的密钥代码。参考the documentation for KeyEvent

答案 1 :(得分:2)

我相信,对于你要向keyPress和keyRelease使用的密钥代码,你想要使用位于此处的KeyEvent类的常量:http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html

VK_B似乎等于66.

KeyEvent.VK_B应该是解决b键的正确方法。我想。

答案 2 :(得分:1)

机器人的keyPress接受Key Code,而不是ASCII值。

相关问题