我正在尝试在 Java 中使用 Robot 类并输入一些文本。不幸的是,我在查找方括号、此符号|
和此符号 ` 的关键代码时遇到问题。我在 KeyEvent 常量中找不到它们。我想使用它们,因为我输入的文本是西里尔文,这些符号代表字母表中的字符。提前致谢。
问问题
3146 次
2 回答
6
它在JavaDoc中KeyEvent
KeyEvent.VK_OPEN_BRACKET
和
KeyEvent.VK_CLOSE_BRACKET
编辑
来自KeyEvent
JavaDoc
此低级事件由组件对象(例如文本字段)在按下、释放或键入键时生成。
因此,在美式 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 回答