web-dev-qa-db-fra.com

Polices laides / non anti-aliasées dans les applications Java-Swing

Je suis récemment passé à Ubuntu et j'ai installé le Java JDK 8u45 (32 bits) d'Oracle à l'aide du référentiel webupd8team/Java.

Tout semble bien fonctionner, sauf que les applications Java-Swing ont des polices cassées et laides sans anti-aliasing. Changer la police ne fonctionne pas. Les applications natives telles que Gedit, bien qu'ayant la même police de caractères, ne sont pas affectées (ni les applications Java non Swing telles que Eclipse); sa seule incidence sur les applications basées sur Swing.

Captures d'écran: (jEdit v5.1)

Screenshot of jEdit

J'utilise Ubuntu 15.04 (qui est la dernière version en date du 2015-06-15). Ma version Java est 1.8.0_45 et la version 'Java - version' donne le résultat suivant:

Java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Server VM (build 25.45-b02, mixed mode)

J'ai essayé les correctifs donnés dans des questions similaires (ici et sur d'autres sites stackexchange) mais ils ne fonctionnent pas. J'ai également ajouté les lignes suivantes dans/etc/environment (comme indiqué ici: https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts ), mais elles ne me donnent aucune apparence apparente. résultats.

Java_FONTS=/usr/share/fonts/truetype
_Java_OPTIONS='-Dawt.useSystemAAFontSettings=on'

Je suis sûr qu'il doit y avoir un correctif pour cela. Les mêmes applications Java fonctionnent comme elles le devraient sous Windows-7.

15
hexman

Ce problème a longtemps été résolu, alors j'ai décidé de poster la solution. Notez que le problème existe toujours par défaut, mais il peut être corrigé par un paramètre.

Ajout de cette ligne:

_Java_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'

à /etc/environment corrige le problème.

Ce correctif fonctionne à partir d’Ubuntu 16.04 et d’OpenJDK 8u151 (n’a pas été vérifié avec Oracle JDK ou Java 9).

Exemple de travail: enter image description here

Remarque : Certaines polices et paramètres AA compliquent le problème. Dans jEdit, j'utilise les polices Java par défaut ("Dialog" comme il est appelé) pour tout. Vous pouvez probablement utiliser une police différente pour la zone de texte, mais Dialog est ce qu'il y a de mieux pour les boutons, etc. Le meilleur paramètre de zone de texte AA que j'ai trouvé est standard mais votre kilométrage peut varier.

15
hexman