Keine Umlaute in JTextField

Status
Nicht offen für weitere Antworten.

homer65

Top Contributor
Hallo Leute,
könnte mal eure Hilfe gebrauchen. Ich habe Probleme mit JTextField. Wenn ich unter Linux JTextField benutze, kann ich dort keine Umlaute eingeben, d.h kein ä,ü und ö. Das gleiche gilt für JTextArea. Unter Windows hatt das immer funktioniert. Weß jemand woran das liegen könnte. Besten Dank im Voraus.
Christian
 
wenn du so allgemein fragst, dann musst du auch mit dieser Frage rechnen:
funktionieren die Umlaute denn in anderen Editoren?
hast du vielleicht eine englische Tastaturbelegung?
teste mal die Zeichen (),;.: +#*~ usw., funktionieren die?
 
Gib mal die Wortfolge "Zwei Zwickauer Zwitschern" in irgendeinen Editor ein. Wenn da anstatt des Z ein Y steht, hast du eine englische Tastaturbelegung.
 
@Wildcard: Wie wähle ich denn eine Schriftart aus?
@JPKI: Wenn ich ein Z auf der Tastatur eingebe erscheint auch ein Z auf dem Bildschirm.
@SlaterB: Im vi kann ich ohne Probleme ä,ü und ö eingeben. In jedit, was ein in Java geschriebener Editor ist, nicht.
 
Pa.. das ist doch gar nix!

Unter einem Linux welches auf kyrillisch gesetzt ist (sprich Bulgarien, Russland, etc.) hat man dann bei der Eingabe statt den kyrillischen Zeichen ARABISCHE ZEICHEN!!

Selten so einen Bug gesehen... Habe nach 1 Tag googlen nen Ansatz gefunden und dann ne Lösung gemacht.. Man muss dort nämlich den inputmethoddescriptor überschreiben!

Man muss ein Jar File ins JRE/include Verzeichnis legen!

Dieses Jar File besteht aus 2 Klassen!

Einmal eine Klasse die InputMethodDescriptor implementiert! Und eine 2te Klasse die bei createInputMethod die 2te Klasse zurückgibt, welche InputMethod implementiert!

Dort muss man in der Methode dispatchEvent auf keyEvent abfragen und dort kriegt man (in meinem Fall) einen komplett falschen Hex Code! Den muss man halt umändern und dann zurückgeben..

Desweieteren muss im Jar File noch in der Ordnerstrutktur META-INF/services eine Datei liegen die java.awt.im.spi.InputMethodDescriptor lautet und in dieser Datei steht der Name zu der Klasse die InputMethodDescriptor implementiert!

So kann man halt auch überwachen ob die richtigen Codes gesetzt sind!

Achja in der Klasse die den InputMethodDescriptor implementiert, muss man bei getAvailableLocales die Locale zurückgeben, die man gerne überschreiben will!
Definiert man hier eine eigene muss, man am besten gleich bei der ganzen Klasse (hier ein JFrame) das hier sagen: frame.getInputContext().selectInputMethod(new java.util.Locale("myLocale"));


Also, wennst Zeit hast, probier das mal und schau ob überhaupt der richtige Code geschickt wird oder ob (so wie bei mir) einfach schon ein kompletter Nonsinn geschickt wird..
 
@thE_29
Also das hört sich kompliziert an. Und ehrlich gesagt habe ich es auch nicht verstanden. Also dann doch lieber die Java 1.6 Variante.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben