1

これが重複していないことを願っていますが、私はフォーラムを精査しましたが、まだ答えを見つけていません。

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);
}

そこにはコードもあります

4

1 に答える 1

1

キーボード レイアウトに注意する必要があると思います。クラスにロケールを指定する組み込み関数があるかどうかはわかりませんが、さまざまなキーボード レイアウトをサポートするクラスRobotのラッパー実装を見つけることができます。このライブラリを参照してください。Robot

于 2013-02-08T06:06:07.110 に答える