Ich versuche, OpenDyslexic als eine Schriftartoption in einer Swing-Anwendung zu verwenden. Aber überraschenderweise sieht OpenDyslexic bei gleicher Punktgröße viel größer aus als jede andere Schriftart, auch wenn es in anderen Anwendungen normal aussieht. Ich habe eine Handvoll anderer OpenType-Schriften ausprobiert und sie sehen nicht besonders groß oder klein aus. Warum ist OpenDyslexic in Java so groß und wie kann ich Java dazu bringen, es normal zu skalieren, sodass ich die Größe von OpenDyslexic nicht speziell anpassen muss?
Auf Oracle JRE (ich habe 1.7.0_11, 1.7.0_15 und die neueste Version 1.7.0_21) auf allen Betriebssystemen versucht, ist die Schriftart zu groß, wenn Java die Schriftartdatei mit Font.createFont
lädt. Wenn ich die Schriftart jedoch im Betriebssystem installiere, ist das Verhalten auf allen drei Plattformen anders:
~/.fonts
nicht. Der Screenshot sieht vor der Installation der Schriftart und nach der Installation gleich aus. Update : Interessanterweise zeigt OpenJDK (sowohl das 7u21 Ubuntu-Paket in Linux als auch das obuildfactory-Build unter OS X) nicht den Fehler. Die 15pt OpenDyslexic 'm' ist 15px breit auf OpenJDK, wie es sein sollte, sowohl wenn die Schriftart aus Datei erstellt wird und wenn die Schriftart vom Betriebssystem behandelt wird. Der Fehler ist in der neuesten Oracle JRE, aber nicht in der neuesten OpenJDK.
Hier ist mein Beispielprogramm. Beachten Sie, dass Sie die OpenDyslexic Dateien in Ressourcen / einfügen müssen, um es auszuprobieren. Alternativ installieren Sie OpenDyslexic in Ihrem System und nehmen den registerFonts()
-Aufruf heraus.
%Vor%
Nicht jede Java-Version unterstützt OpenType (vgl. diese Übersicht ). Wenn Sie ohne einige der OpenType-Funktionen leben können, wäre die einfachste Lösung, die Schriftartdatei in TTF zu konvertieren. Es scheint ein paar kostenlose Online-Optionen zu geben, die Ihnen dabei helfen löst Ihr Problem Sie können immer noch in professionelle Software investieren, um möglicherweise bessere Ergebnisse zu erzielen.
Tags und Links java swing fonts jtextcomponent letter-spacing