JFileChooser ist Englisch und bleibt Englisch und bleibt Englisch...

Bitte aktiviere JavaScript!
Hallo Leute, ich häng grad mal wieder...

... und wieder stelle ich mir die Frage, ob der Hänger auf meinem Mist gewachsen ist, oder ob ich einem Bug aufsitze:

Nach der Kommerzialisierung des OracleJDK habe ich auf OpenJDK umgestellt, so weit so gut.

Nun ist mir aber bei meinem Software-Projekt (das immerhin schon fast 10 Jahre läuft) aufgefallen, dass beim JFileChooser (showSaveDialog und showOpenDialog) und auch beim JColorChooser sämtliche Labels, Buttons, ToolTips plötzlich englisch sind (und damit meine ich nicht halbgar!)

Die Abfrage der entsprechenden Komponenten über JFileChooser.getDefaultLocale() gibt mir jedoch deutsch aus.

Ein kleines Programmbeispiel zum Ausprobieren:

Java:
public static void main(String[] args) {
     Locale.setDefault(Locale.GERMAN);
     JFileChooser fc = new JFileChooser();
     System.out.println(JFileChooser.getDefaultLocale());
     fc.showOpenDialog(null);
}
Wie ihr sehen könnt, setze ich sogar gezielt die deutsche Sprachumgebung (was ich mir eigentlich sparen könnte).

Ich hab zwar schon Möglichkeiten gefunden (zumindest im JFileChooser) die Komponenten mit eigenem Text zu versehen, aber darauf wollte ich eigentlich nur im Notfall zurückgreifen!

Das Problem trat unter OpenJDK 11.0.2 und 12 auf. Muss ich vielleicht da noch irgendwo eine Einstellung selber machen, die mir der Oracle-Installer von sich aus gesetzt hat? Oder ist euch irgendwas über einen Bug bekannt...?

Danke und Grüße!
Tueftli
 
A

Anzeige




Schau mal hier —> (hier klicken)
Könnte mit dem Look and Feel zusammenhängen. Welches verwendest Du denn?
 
Hallo!
Also ich glaub nicht, dass es am LAF liegt. In meinem Projekt verwende ich Nimbus. Das Problem tritt aber auch bei dem kleinen obigen Beispiel mit dem Standard-LAF ("Metal") auf.
Auch die anderen habe ich soeben alle durchprobiert...

Kann das irgendjemand reproduzieren? Bei mir ist das OpenJDK 12 unter Win10 installiert.
 
Zuletzt bearbeitet:
Bei mir ist es auf Linux, AdoptOpenJDK 11, genau anders herum (immer Deutsch).
Aber: Anscheinend musst du nach deinem Locale.SetDefault(...); einfach mal nur ein JFileChooser.setDefaultLocale(Locale.getDefault()); einfügen (oder einfach die Locale nur dort setzen) und schon klappt's. Swing ist halt Asbach-Uralt und es wundert mich nicht, dass der JFileChooser nicht die Default-Locale respektiert...
 
..hatt ich schon längst ausprobiert. Bleibt englisch....
:confused:

Kann es sein, dass beim OpenJDK ein deutsches Sprachpaket oder etwas ähnliches fehlt bzw. nachinstalliert werden muss?
 
Das wäre möglich... Welches OpenJDK verwendest du denn? Man hat ja mittlerweile die Wahl der Qual - oder so ähnlich. Probier mal bitte AdoptOpenJDK (das geht ja bei mir anscheinend).

z.B. 64bit Windows: https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot#x64_win

Btw: Du kannst schon OracleJDK (ab v9+) zum Entwickeln deiner Anwendung verwenden, du darfst es nur nicht bundlen bzw. produktiv einsetzen, ohne zu zahlen. Für Privat und Entwicklung bleibt es kostenlost.
 
Welche Version vom JDK hast du? von 11 ist doch 11.0.2 aktuell - probier mal das. Und wie gesagt: AdoptOpenJdk scheint das Problem nicht zu haben.
Ansonsten: Guter Fund!
 
setze OpenJDK 12 ein. Das 11.0.2 hat den Bug auch...

Wenn du Lust hast, kannst bei dir ja mal probieren, ob andere Locals (nicht) funktionieren, z.B. FRENCH, JAPAN, CHINA usw...
Aber das Adopt basiert doch auf dem OpenJDK von Oracle hätte ich gedacht...
 
Wie gesagt: DE geht bei mir (AdoptOpenJDK 11.0.2) - und das sollte laut Bugreport schon kaputt sein.
 
Bugreport?
Das ist dort beschriebene ist doch dokumentiertes Verhalten ;)

https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#Important_Changes hat gesagt.:
Previous releases were translated into English, Japanese, and Simplified Chinese as well as French, German, Italian, Korean, Portuguese (Brazilian), Spanish, and Swedish. However, in JDK 11 and later, French, German, Italian, Korean, Portuguese (Brazilian), Spanish, and Swedish translations are no longer provided.
 
Ah, danke mrBrown, interessant...
Lesen bildet! ;)
Vielen dank für den Hinweis! Ich hatte schon an mir selbst gezweifelt...

Ich frag mich jetzt allerdings, wie man als Programmierer am sinnvollsten mit dieser "Änderung" umgeht.

Ich hab mir jetzt mal für den FileChooser eine Methode für die "Eindeutschung" gebastelt:
Java:
        UIManager.put("FileChooser.openButtonText", "Öffnen");
        UIManager.put("FileChooser.cancelButtonText", "Abbrechen");
        UIManager.put("FileChooser.saveButtonText", "Speichern");
        
        UIManager.put("FileChooser.cancelButtonToolTipText", "Abbrechen der Auswahl");
        UIManager.put("FileChooser.saveButtonToolTipText", "Ausgewählte Datei speichern");
        UIManager.put("FileChooser.openButtonToolTipText", "Ausgewählte Datei öffnen");
        UIManager.put("FileChooser.upFolderToolTipText", "Eine Ebene höher");
        UIManager.put("FileChooser.homeFolderToolTipText", "Home");
        UIManager.put("FileChooser.newFolderToolTipText", "Neuen Ordner erstellen");
        UIManager.put("FileChooser.listViewButtonToolTipText", "Liste");
        UIManager.put("FileChooser.detailsViewButtonToolTipText", "Details");
        
        UIManager.put("FileChooser.lookInLabelText", "Suchen in:");
        UIManager.put("FileChooser.fileNameLabelText", "Dateiname:");
        UIManager.put("FileChooser.filesOfTypeLabelText", "Dateityp:");
        
        UIManager.put("FileChooser.acceptAllFileFilterText", "Alle Dateien (*.*)");
Jetzt brauch ich noch was vergleichbares für den ColorChooser...
 
Ist aber auch sinnlos, dass ausgerechnet das entfernt wird! Si "supporten" ja angeblich noch Swing, da verwundert mich das schon ein wenig.
 
Das seltsame ist, dass im OpenJDK-Source-Tree die properties-Files dazu vorhanden sind. Außer, ich habe falsch geschaut.
 
Naja, macht Sinn. Denn sonst wäre mein lokaler AdoptOpenJDK-Build irgendwie seltsam... Keine Ahnung, was das für ein Logik von Oracle ist.
 
A

Anzeige




Vielleicht hilft dir das hier weiter: (klicke hier)
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben