Robot Java z Azerty vrs Qwerty

Mam nadzieję, że to nie jest duplikat, ale przeczytałem fora i nie znalazłem jeszcze żadnych odpowiedzi.

Mam problemy z aplikacją java używającą klasy Robot do wpisywania tekstu. Tekst jest dostarczany, a aplikacja wypisuje go. Gdy użytkownik ma klawiaturę QWERTY, wszystko działa dobrze. Gdy użytkownik ma klawiaturę AZERTY, wartości są wyświetlane nieprawidłowo.

Na przykład podanie „1234567890” do typów oprogramowania „& é” ”(§è! Çà”

Mam nadzieję, że niektórzy ludzie mają pomysł, jak obsługiwać wiele układów klawiatury. Z góry dziękuję.

Oto fragment

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

Jest tam również kod do

questionAnswers(1)

yourAnswerToTheQuestion