G
Gelöschtes Mitglied 67123
Gast
Wenn man z. B. einen Text in ein TextField eingibt und dort verschiedenste Unicode-Zeichen drin sind (bspw. Sonderzeichen, Arabische, Griechische und Chinesische Zeichen) und dieser eingegebene Text dann vom Programm nachgeschrieben wird.
*Kein Copy and Paste, sondern Zeichen für Zeichen, so was wie Robot. Das Problem ist aber, dass Robot nur wenige Zeichen unterstützt.
Beispiel {
Im TextField steht jetzt هذا那是!äü>_ und diese Zeichen möchte ich vom Programm nachtippen lassen.
Ja, mit robot.keyPress(); usw. kann man Zeichen tippen lassen, aber die genannten und tausende andere Zeichen sind Unicodes, die Robot nur als "?" schreibt, da er diese Zeichen nicht kennt oder so.
Jemand hat mir diesen Code gegeben:
Nur weiß ich nicht, wie ich den key_code eines Zeichens bekomme, der in einem TextField steht und ich weiß nicht, ob die for-Schleife für mein Vorhaben richtig ist, da ich nicht alle möglichen Unicodes, die es gibt, schreiben lassen möchte, sondern nur das Zeichen, das als nächstes dran ist - und ich weiß nicht, was Math.pow() macht.
Hiermit übergebe ich die einzelnen Zeichen weiter:
} Ende vom Beispiel.
Danke.
*Kein Copy and Paste, sondern Zeichen für Zeichen, so was wie Robot. Das Problem ist aber, dass Robot nur wenige Zeichen unterstützt.
Beispiel {
Im TextField steht jetzt هذا那是!äü>_ und diese Zeichen möchte ich vom Programm nachtippen lassen.
Ja, mit robot.keyPress(); usw. kann man Zeichen tippen lassen, aber die genannten und tausende andere Zeichen sind Unicodes, die Robot nur als "?" schreibt, da er diese Zeichen nicht kennt oder so.
Jemand hat mir diesen Code gegeben:
Java:
public static void TypeText(Robot r, int key_code)
{
r.keyPress(KeyEvent.VK_ALT);
for(int i = 3; i >= 0; --i)
{
// extracts a single decade of the key-code and adds
// an offset to get the required VK_NUMPAD key-code
int numpad_kc = key_code / (int) (Math.pow(10, i)) % 10 + KeyEvent.VK_NUMPAD0;
r.keyPress(numpad_kc);
r.keyRelease(numpad_kc);
}
r.keyRelease(KeyEvent.VK_ALT);
}
Hiermit übergebe ich die einzelnen Zeichen weiter:
Java:
for (char ch : textInput.toCharArray()) {
new TypeText(gMI.r, ch);
}
Danke.