# Umlaute in Swing ohne HTML!



## Conn (30. Mai 2007)

Hallo, versuche SwingElemente mit Umlauten zu versehen, die systemübergreifend angezeigt werden. Habe rausgefunden das man mit HTML ganz gut arbeiten kann. Nur erweist sich der Zugriff auf diese mit HTML erstellten "chars" als schwierig.

So z.B. habe ich eine schlichte JMenuBar erstellt mit folgendem Eintrag:

```
JMenuItem menuItem = new JMenuItem("<html>&Ouml;ffnen</html>");
menuItem.setMnemonic(??);
```

Den Umlaut mit setMnemonic zu unterstreichen scheint nicht möglich. Er ist weder um den Buchstaben noch über einen Index anzusprechen. Die gleichen Probleme habe ich bei TitelLeisten von Dialogen, die scheinbar kein HTML darstellen wollen. Gibt es hier solch eine Klasse wie utf8_encode, utf8_decode wie in PHP?! Mit der FileReader Klasse gelingt es mir im Übrigen auch nicht Umlaute systemübergfreifend einzulesen. 

Für Anregungen bedanke ich mich im Voraus.
Conrad.


----------



## MasterEvil (30. Mai 2007)

Normalerweise sollte _new JMenuItem("Öffnen");_ Systemübergreifend funktionieren, es ist sogar möglich die deutschen Umlaute in Funktionsnamen zu verwenden.

Hast du denn einen Fall in dem das nicht klappt oder willst du nur auf Nummer sicher gehen?


----------



## Conn (30. Mai 2007)

Die Portierung von Unix Systemen auf Windows und umgekehrt scheint nicht möglich. Apple habe ich nicht getestet.


----------



## MasterEvil (30. Mai 2007)

Hm?
Also ich programmiere selbst unter Linux und die Sonderzeichen werden auf Windowssystemen auch genauso dargestellt. Der eigentlich Sourcecode muss dann natürlich auch mit UTF8 geschrieben sein.
Ich vermute das deine Sourcedateien einfach nur in UTF8 umcodiert werden müssen.


----------



## Conn (30. Mai 2007)

Bei mir geht es komischerweise nicht. Naja, hab jetzt alles in ae,oe,ue usw. umgewandelt. Sieht zwar nicht so hübsch aus, aber was solls.
Hab auch nochmal wegen den Character Streams rumgegoogelt, aber für die Stino - FileReader Klasse scheint es keine UTF-8 decodierung/encodierung zu geben.

Trotzdem vielen Dank. Conrad.


----------



## kleiner_held (30. Mai 2007)

Wenn Umlaute nicht dargestellt werden, liegsts meistens am Encoding der Sourcecode Dateien. Dem Compiler kann man mit -encoding das Encoding speziell mitteilen, ansonsten nimmt er ich glaube das Default des Betriebssystems.
IDEs erlauben normalerweise auch die explizite Festlegung des Encodings.

Wenn es trotzdem Probleme gibt, kann man Umlaute im Quelltext auch maskieren: Java Insel

Der FileReader nimmt auch immer das Default Encoding des Betriebssystems. Wenn man ein anderes Encoding will, muss man einen FileInputSream verwenden und einen InputSreamReader darum legen (das steht auch so in der API zu FileReader). Zu den moeglichen Encodings fuer InputSreamReader siehe API zu java.nio.charset.Charset.


----------



## klein-odd (30. Mai 2007)

Und hast Du schon mit Unicode - Kodierung versucht ?

In meinen GUIs kann ich beliebiege Zeichen von Unicode einblenden-

nach Vorschrift : \u+XXXX

XXXX ist eine 4 stellige hex-Nummer des Zeichens,

deutsches ö  hat beispielsweise: \u00F6

Also "Köchin" wird als K\u00F6chin kodiert, usw

hier kannst Du nach Details suchen http://www.unicode.org/Public/

oder benutzt Du die praktische Tabelle zum Draufklicken  bei :

http://www.pccl.demon.co.uk/java/unicode.html


----------

