Java 字符到键事件int
希望将字符转换为整数,以便与awtJava 字符到键事件int,java,awt,awtrobot,Java,Awt,Awtrobot,希望将字符转换为整数,以便与awtrobots键控件一起使用。我有这个解决方案,它现在可以工作,但它很长,很混乱,我需要添加每一个可能输入的密钥,这是非常多的。有没有更简单或更整洁的方法来完成这项任务?谢谢 (我现在用+10000表示大写字母,我只需在键入字符时进行检查,如果num>10000,请按住shift键并从数字中删除10000) 查看源代码,KeyEvent字段的值如下 public static final int VK_A = 65; public static final int
robot
s键控件一起使用。我有这个解决方案,它现在可以工作,但它很长,很混乱,我需要添加每一个可能输入的密钥,这是非常多的。有没有更简单或更整洁的方法来完成这项任务?谢谢
(我现在用+10000表示大写字母,我只需在键入字符时进行检查,如果num>10000,请按住shift键并从数字中删除10000)
查看源代码,KeyEvent字段的值如下
public static final int VK_A = 65;
public static final int VK_B = 66;
...
public static final int VK_Z = 90;
这只是A-Z的ascii值。您可以将字符转换为int以获得其ascii值,这意味着您可以执行类似的操作
public static int charToNum(char inputChar) {
if(inputChar == '!') {
return(KeyEvent.VK_EXCLAMATION_MARK);
} else if (inputChar == ' ') {
return(KeyEvent.VK_SPACE);
}
if (Character.isUpperCase(inputChar)) {
return (int) inputChar + 10000;
} else {
return (int) inputChar - 32;
}
}
但是,任何非字母字符都必须有自己的特殊大小写,如感叹号和空格 不,这是唯一的办法。应该先按SHIFT键来生成资金……啊,真是糟透了:/噢,好吧!看到代码上方的注释,我在这个方法中使用+10000,但是当我打字时,我会按住shift键
public static int charToNum(char inputChar) {
if(inputChar == '!') {
return(KeyEvent.VK_EXCLAMATION_MARK);
} else if (inputChar == ' ') {
return(KeyEvent.VK_SPACE);
}
if (Character.isUpperCase(inputChar)) {
return (int) inputChar + 10000;
} else {
return (int) inputChar - 32;
}
}