Fuentes feas / sin suavizado en aplicaciones Java-Swing

15

Recientemente me cambié a Ubuntu e instalé Java JDK 8u45 de Oracle (32 bits) usando el repositorio webupd8team / java.

Todo parece estar funcionando bien, excepto que las aplicaciones Java-Swing tienen fuentes rotas y feas sin anti-aliasing. Cambiar la fuente no funciona. Las aplicaciones nativas como Gedit, aunque tienen la misma fuente, no se ven afectadas (ni las aplicaciones Java no Swing como Eclipse); solo afecta a las aplicaciones basadas en Swing.

Capturas de pantalla: (jEdit v5.1)

Captura de pantalla de jEdit

Estoy ejecutando Ubuntu 15.04 (que es la última versión del 15/06/2015). Mi versión de Java es 1.8.0_45 y 'java -version' da el siguiente resultado:

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)

He intentado las correcciones dadas en preguntas similares (aquí y en otros sitios de intercambio de pila) pero no funcionan. También he agregado las siguientes líneas en el entorno / etc / (como se indica aquí: https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts ) pero no me están dando ningún resultado aparente.

JAVA_FONTS=/usr/share/fonts/truetype
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

Estoy seguro de que debe haber una solución para esto. Las mismas aplicaciones Java funcionan como deberían en Windows-7.

hexman
fuente

Respuestas:

16

Este problema se ha solucionado durante mucho tiempo, así que decidí publicar la solución. Tenga en cuenta que el problema sigue existiendo de manera predeterminada, pero se puede solucionar mediante un parámetro.

Agregando esta línea:

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

para /etc/environmentsolucionar el problema

Esta solución funciona a partir de Ubuntu 16.04 y OpenJDK 8u151 (no se ha verificado con Oracle JDK o Java 9).

Ejemplo de trabajo: ingrese la descripción de la imagen aquí

Nota : Algunas fuentes y configuraciones AA complican el problema. En jEdit, uso las fuentes Java predeterminadas ("Diálogo" como se llama) para todo. Probablemente pueda usar una fuente diferente para el Área de texto, pero Diálogo es el mejor para botones, etc. La mejor configuración AA de Área de texto que he encontrado es estándar, pero su kilometraje puede variar.

hexman
fuente
1
¡Su solución funciona muy bien!
Nadav B
1
Nuevamente necesario a partir de Ubuntu 18.10 y OpenJDK 11. ¡Y sigue funcionando! :)
tanius