2013-02-08 27 views
0

我希望這不是重複的,但我已經搜索論壇,但還沒有找到任何答案。Java機器人與Azerty vrs Qwerty

我與我的Java應用程序使用Robot類鍵入文本的問題。提供的文本和應用程序輸出它。當用戶使用QWERTY鍵盤時,一切正常。當用戶使用AZERTY鍵盤時,這些數值出現錯誤。

例如餵養「1234567890」到軟件類型「&é」'(§è!CA」

我希望有些人有一個想法如何支持多種鍵盤佈局。謝謝你在前進。

這裏是一個片段

String TRANSLATION_SHIFT = "[email protected]#$%^&*()_+{}|:\"<>?"; 
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); 
} 

也有代碼在那裏

回答

2

我想你會需要知道的第e鍵盤佈局,我不確定是否有一些內置函數來指定Robot類的語言環境,但您可以找到Robot類的包裝器實現,它支持不同的鍵盤佈局see this library