我的代码:
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键入字符串 ?
答案 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值。