JAVA Robot键入挪威字符

时间:2015-09-21 09:24:16

标签: java linux swing awtrobot

我想使用java awt robot输入类似å,ø,æ的字母。但无法找到这些字母的任何关键事件。我使用的是ubuntu,挪威语被选为语言。所以我可以从键盘输入这些字母,但是当我尝试获取键码时,这些字母始终为0。

有人可以建议我如何使用java机器人编写。

1 个答案:

答案 0 :(得分:1)

基于沃尔夫冈施泰纳的解决方案:

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角色。

要获取Symbol的代码,请执行以下操作:

char ch='ä';
int key_code = ch;
System.out.println(key_code);

修改:此解决方案基于Windows。要使其适用于Linux,请尝试以下操作:

“对于linux - 在输入角色的同时按住'ctrl'并'''移动'整个时间。按住它们的同时按'U'然后按字符的4位八进制代码。”

详细信息:https://pthree.org/2006/11/30/its-unicode-baby/