Swing Umlautproblem

T

trez

Gast
Hallo.

Ich habe einen JButton und eine HasMap welche Texte beinhaltet.
Das Projekt ist UTF-8 codiert.

Der Button wird mit einem Text aus der HashMap benannt z.B. "Wähle .."
Das "ä" wird auf dem JButton nicht korrekt dargestellt, obwohl Entwicklungs- wie auch Laufzeitumgebung im Moment Windows ist.

Kann/muss ich dem Button sagen, dass da UTF-8 kommt?

Edit: Dass es eine HashMap ist, scheint irrelevant, denn es sind hard coded Strings die da verwendet werden. (Etwas primitiv, aber im konkreten Fall ok)

Ein Versuch von mir, der auch schief geht:
Java:
	private PanelBuilder builder;
	CellConstraints cc = new CellConstraints();
	builder.addLabel("Max. Grösse eines Logfiles",	cc.xy (1,1));
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
poste Quellcode, möglichst minimales Testprogramm,
worum genau geht es, eine String-Variable mit "Wähle" oder besser kürzer "ä"?
untersuche diese zur Laufzeit, wieviele chars und welche (int-Wert pro char ausgeben)?
und dieser String zur Laufzeit in einen Button gesetzt führt zu einer kaputten Anzeige?

oder geht ein normaler String und per HashMap nicht mehr? oder sind noch andere Quellen wie Textdatei auf Festplatte beteiligt?
 

HelgeW

Mitglied
Nutze die Unicode-Kennung der Umlaute, dann sollte es keine Probleme geben...

\u00E4 ä Umlaut klein: ä
\u00C4 Ä Umlaut groß: Ä

Gruß
 
T

trez

Gast
Hm, noch kürzer als oben geht es nicht - sind natürlich nur Auszüge, aber das ändert nichts


wie gesagt, UTF-8 (Das haben wir damals so eingestellt, weil das gemäss einer Auskunft hier am sichersten sei, wenn man portieren will)

Java:
//Keys ist ein enum

// Das ist ja wohl null-Magie ;-)
class TextResources {
	private HashMap<Keys, String> texte;
	private static TextResource textResource = new TextResource();

	private TextResource() {
		texte = new HashMap<Keys, String>();
		texte.put(Keys.ButtonSelectPath, "Wähle Pfad");
		texte.put(Keys.MaxLogfileSize, "Max. Grösse eines Logfiles");
		// und noch ein paar mehr ...
	}
	public static String getText(Keys key) {
		String retVal = textResource.texte.get(key);
		if (retVal==null)
			return key.toString();
		return retVal;
	}
}

// codeschnipsel, aber glaub mir, es geht einfach schief ;-)
	private JButton		buttonSelectLogPath		= new JButton();
	buttonSelectLogPath.setText(TextResource.getText(Keys.ButtonSelectPath));
	builder.addLabel(TextResource.getText(Keys.MaxLogfileSize),	cc.xy (1,1));
 

HelgeW

Mitglied
hähähähähähähähähähähähähähäähähähähäh

So in der Art wie
Code:
    private PanelBuilder builder;
    CellConstraints cc = new CellConstraints();
    builder.addLabel("Max. Gr\u00F6sse eines Logfiles",  cc.xy (1,1));

Es gibt für alle Sonderzeichen eine Unicode Entsprechung, die dann eindeutig ist...
 
T

trez

Gast
Nutze die Unicode-Kennung der Umlaute, dann sollte es keine Probleme geben...

\u00E4 ä Umlaut klein: ä
\u00C4 Ä Umlaut groß: Ä

Gruß

Danke, versuche ich später, die nächste Sitzung wartet.

@horts (oder hätte das Horst heissen sollen?) - Applaus für deinen kreativen, hochwertigen Beitrag :D
 
S

SlaterB

Gast
Leute, keine Postings zitieren/ kommentieren, die (idealerweise) bald gelöscht werden ;) ,
das gibt doch ein Dilemma und unnötige Aufmerksamkeit, jetzt auch durch mein Posting
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JTextArea - Umlautproblem AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben