Java机器人与Azerty对Qwerty

时间:2013-02-08 05:47:54

标签: java keyevent awtrobot qwerty

我希望这不是重复,但我已经搜索了论坛,但还没有找到任何答案。

我在使用Robot类输入文本的java应用程序时遇到问题。提供了文本,应用程序将其输出。当用户有QWERTY键盘时,一切正常。当用户使用AZERTY键盘时,值不正确。

例如将“1234567890”输入软件类型“&é”'(§è!çà“

我希望有些人知道如何支持多种键盘布局。提前谢谢。

这是一个片段

String TRANSLATION_SHIFT = "~!@#$%^&*()_+{}|:\"<>?";
String TRANSLATION_NON_SHIFT = "`1234567890-=[]\\;',./";
Robot robot = new Robot();
String text = "1234567890";
int key;
for (char c: text.toCharArray()){
  switch(c){
    ....
    case '0':
      key = KeyEvent.VK_0;
      break;
case '1':
  key = KeyEvent.VK_1;
  break;
...(etc etc)...
case '9':
  key = KeyEvent.VK_9;
  break;
    ...
  }
  robot.keyPress(key);
  robot.keyRelease(key);
}

还有代码

1 个答案:

答案 0 :(得分:1)

我认为您需要了解Keyboard布局,我不确定是否有一些内置函数来指定Robot类的语言环境,但您可以找到Robot类的包装器实现{1}}支持不同键盘布局的类see this library