Penso di aver implementato un'anima migliore, forse qualcuno l'ha trovato utile (l'approccio principale è quello di leggere tutti i valori da enum KeyCode e poi di inserirlo in una HashMap e usarlo in seguito per trovare un codice chiave int)
public class KeysMapper {
private static HashMap<Character, Integer> charMap = new HashMap<Character, Integer>();
static {
for (KeyCode keyCode : KeyCode.values()) {
if (keyCode.impl_getCode() >= 65 && keyCode.impl_getCode() <= 90){
charMap.put(keyCode.getName().toLowerCase().toCharArray()[0], keyCode.impl_getCode());
}
else{
charMap.put(keyCode.getName().toLowerCase().toCharArray()[0], keyCode.impl_getCode());
}
}
}
public static Key charToKey(char c){
if(c>=65 && c<=90){
return new Key(charMap.get(c), true);
} else {
return new Key(charMap.get(c), false);
}
}
public static List<Key> stringToKeys(String text){
List<Key> keys = new ArrayList<Key>();
for (char c : text.toCharArray()) {
keys.add(charToKey(c));
}
return keys;
}
ho creato anche una classe chiave per sapere se per digitare un carattere maiuscolo o minuscolo:
public class Key {
int keyCode;
boolean uppercase;
//getters setter constructors}
e, infine, è possibile utilizzarlo come quella (per singolo carattere) robot.keyPress(charToKey('a').getKeyCode());
Se si desidera premere un maiuscolo hai t o premere e rilasciare contemporaneamente con il tasto Maiusc
fonte
2016-02-13 22:35:54
111 è solo un esempio. Diciamo che voglio che entri in '" Hello world "'! –