我想使用 java awt 机器人输入 å、ø、æ 等字母。但无法找到这些字母的任何关键事件。我正在使用 ubuntu,并且选择了挪威语作为一种语言。所以我可以从键盘输入这些字母,但是当我尝试获取键码时,这些字母始终为 0。
有人可以建议我如何使用 java 机器人进行编写。
基于 Wolfgang Steiner 的解决方案:
public static void pressUnicode(Robot r, int key_code)
{
r.keyPress(KeyEvent.VK_ALT);
for(int i = 3; i >= 0; --i)
{
// extracts a single decade of the key-code and adds
// an offset to get the required VK_NUMPAD key-code
int numpad_kc = key_code / (int) (Math.pow(10, i)) % 10 + KeyEvent.VK_NUMPAD0;
r.keyPress(numpad_kc);
r.keyRelease(numpad_kc);
}
r.keyRelease(KeyEvent.VK_ALT);
}
这会自动遍历 unicode 键码的每个十进制,将其映射到相应的 VK_NUMPAD 等效项并相应地按下/释放键。它适用于每个 unicode 字符。
要获取符号的代码,请执行以下操作:
char ch='ä';
int key_code = ch;
System.out.println(key_code);
编辑:这个解决方案是基于windows的。要使其适用于 Linux,请尝试以下操作:
“对于 linux - 在输入字符时一直按住 'ctrl' 和 'shift'。按住它们的同时,按 'U',然后按字符的 4 位八进制代码。”
详细信息:https://pthree.org/2006/11/30/its-unicode-baby/
我是一名优秀的程序员,十分优秀!