Polices laides / non anticrénelées dans les applications Java-Swing

15

Je suis récemment passé à Ubuntu et j'ai installé Java JDK 8u45 d'Oracle (32 bits) en utilisant le 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. La modification de la police ne fonctionne pas. Les applications natives comme Gedit mais qui ont la même police ne sont pas affectées (ni les applications Java non Swing comme Eclipse); cela affecte uniquement les applications basées sur Swing.

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

Capture d'écran de jEdit

J'utilise Ubuntu 15.04 (qui est la dernière version en date du 15/06/2015). Ma version Java est 1.8.0_45 et 'java -version' donne la sortie suivante:

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 l'environnement / etc / (comme indiqué ici: https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts ) mais elles ne me donnent aucun résultat apparent.

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 sur Windows-7.

hexman
la source

Réponses:

16

Ce problème a été résolu depuis longtemps, j'ai donc décidé de publier la solution. Notez que le problème est toujours là par défaut mais il peut être résolu par un paramètre.

Ajout de cette ligne:

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

pour /etc/environmentrésoudre le problème.

Ce correctif fonctionne à partir d'Ubuntu 16.04 et d'OpenJDK 8u151 (non vérifié avec Oracle JDK ou Java 9).

Exemple de travail: entrez la description de l'image ici

Remarque : certaines polices et certains paramètres AA compliquent le problème. Dans jEdit, j'utilise les polices Java par défaut ("Dialog" comme on l'appelle) pour tout. Vous pouvez probablement utiliser une police différente pour la zone de texte, mais la boîte de dialogue est la meilleure 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.

hexman
la source
1
Votre solution fonctionne très bien!
Nadav B
1
Encore une fois nécessaire depuis Ubuntu 18.10 et OpenJDK 11. Et fonctionne toujours! :)
tanius