1

我正在尝试在 Java 中使用 Robot 类并输入一些文本。不幸的是,我在查找方括号、此符号|和此符号 ` 的关键代码时遇到问题。我在 KeyEvent 常量中找不到它们。我想使用它们,因为我输入的文本是西里尔文,这些符号代表字母表中的字符。提前致谢。

4

2 回答 2

6

它在JavaDocKeyEvent

KeyEvent.VK_OPEN_BRACKET

KeyEvent.VK_CLOSE_BRACKET

编辑

来自KeyEventJavaDoc

此低级事件由组件对象(例如文本字段)在按下、释放或键入键时生成。

因此,在美式 101 键键盘上,`~将产生相同的键码,但~会有一个SHIFT修饰符。另请注意,它也会KeyEvent.VK_BACK_SLASH捕获|(管道)击键。

尝试将以下示例添加KeyAdapter到您的项目中以查看实际情况。

new KeyAdapter()
{
    public void keyPressed(final KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_BACK_QUOTE)
        {
            e.toString();
        }
        if (e.getKeyCode() == KeyEvent.VK_BACK_SLASH)
        {
            e.toString();
        }
        if (e.getKeyCode() == KeyEvent.VK_OPEN_BRACKET)
        {
            e.toString();
        }
    }
}
于 2013-03-12T13:46:32.910 回答
0

一般的解决方案是调用KeyEvent.getExtendedKeyCodeForChar(int c). 如果 unicode 代码点c有一个VK_将被返回的常量。否则返回一个“唯一整数”。

我认为'`'是 KeyEvent.VK_BACK_QUOTE ...

于 2013-03-12T13:52:22.160 回答