【问题标题】:JAVA Robot to type Norwegian charactersJAVA机器人输入挪威字符
【发布时间】:2015-09-21 09:24:15
【问题描述】:

我想使用 java awt 机器人输入 å,ø,æ 等字母。但找不到这些字母的任何关键事件。我正在使用 ubuntu 并且选择了挪威语作为一种语言。所以我可以从键盘输入这些字母,但是当我尝试获取键码时,这些字母始终为 0。

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

【问题讨论】:

    标签: java linux swing awtrobot


    【解决方案1】:

    基于 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/

    【讨论】:

    • 您能否将您的尝试添加为格式化代码?但据我所知,这是正确的
    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多