2010-04-21 12 views
6

Ist es möglich, eine GUI in Java zu schreiben, die japanische Schriftarten korrekt anzeigt, unabhängig von den Spracheinstellungen des Betriebssystems, auf dem sie ausgeführt wird?Japanische Schriftarten in einer Java-GUI

Ich möchte ein Programm schreiben, das in der Lage ist, dies zu tun, aber ich bin mir nicht sicher, wie ich anfangen soll. Jeder Rat wäre eine große Hilfe!

Antwort

0

Fügen Sie -Dfile.encoding=utf-8 zu Ihrem Befehlszeilenskript hinzu, das die Anwendung startet.

+0

Danke allen! Fantastischer Rat! – kakashi

7

Die Spracheinstellungen sind hier nicht das Problem. Schriftarten sind.

Java kann sicherlich mit japanischem Text umgehen, egal was die Systemeinstellungen sind, wenn der Entwickler nicht in die Falle gerät, abhängig von der Standardkodierung der Plattform, indem er Dinge wie FileReader oder new String(byte[]) verwendet.

Um jedoch den japanischen Text anzeigen zu können, benötigen Sie eine Schriftart mit japanischen Zeichen, und Schriften sind nicht Teil von Java. Je nach Betriebssystem können Japanisch-fähige Schriftarten Teil der Standardinstallation sein, oder der Benutzer wird möglicherweise aufgefordert, sie bei Bedarf zu installieren, oder sie müssen möglicherweise manuell installiert werden.

+0

Brilliant, danke! – kakashi

6

Java kann problemlos Japanisch anzeigen, unabhängig davon, ob das Betriebssystem die Schriftarten installiert hat oder nicht, aber dies gilt nur für Swing-Anwendungen. Alles, was das Konsolenfenster verwendet, erfordert Schriftarten, die im Betriebssystem installiert sind.

Schritte:

1) von hier einen der Truetype-Schriftart Herunterladen: http://www.wazu.jp/gallery/Fonts_Japanese2.html

2) Verwenden Sie den folgenden Code ein, Ihren Swing-Clients zu ermöglichen, Ihre Schriften zu verwenden:

InputStream fontStream = getClass().getResourceAsStream("/locationoffontonclasspath/myfontname.ttf"); 
Font japaneseEnabledFont = null; 
boolean japaneseDisplayEnabled = false; 
try { 
    japaneseEnabledFont = Font.createFont(Font.TRUETYPE_FONT, fontStream); 
    GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(japaneseEnabledFont); 
    japaneseDisplayEnabled = true; 
} catch (Exception e) { 
    // handle exceptions here 
} finally { 
    if (fontStream != null) { 
     try {fontStream.close();} catch (Exception e1) {} 
    } 
} 

if (japaneseDisplayEnabled) { 
    ..... 
} 

Auch Wenn Sie japanische Literale in Ihrem Quellcode verwenden möchten, müssen Sie mit -Dfile.encoding = utf-8 kompilieren. Wenn eine IDE dann kompilieren können Sie die Einstellungen im folgenden Bildschirm ändern (rechts das Projekt klicken und Eigenschaften wählen dieses Fenster zu erhalten): screenshot

More information is available at this page

+0

Super! Vielen Dank! – kakashi

3

Sie können eine Truetype-Schriftart mit Ihrem Programm verpacken und laden und verwenden Sie es in Swing-Komponenten wie folgt:

Seien Sie vorsichtig, den richtigen Zeichensatz zu verwenden. Wenn Sie japanische Zeichen im Code kompilieren, sollten Sie mit javac -encoding utf-8 Foo.java kompilieren. Stellen Sie sicher, dass Sie den Zeichensatz bei der Verwendung von Lesern explizit verwenden.

+0

Vielen Dank! – kakashi

Verwandte Themen