Fontes feias / sem suavização de serrilhado em aplicativos Java-Swing

15

Recentemente, mudei para o Ubuntu e instalei o Java JDK 8u45 da Oracle (32 bits) usando o repositório webupd8team / java.

Tudo parece estar funcionando bem, exceto que os aplicativos Java-Swing estão com fontes quebradas e feias sem anti-aliasing. Alterar a fonte não funciona. Aplicativos nativos como o Gedit, embora tenham a mesma fonte, não são afetados (nem aplicativos Java não Swing, como o Eclipse); afeta apenas os aplicativos baseados em Swing.

Capturas de tela: (jEdit v5.1)

Captura de tela do jEdit

Estou executando o Ubuntu 15.04 (que é a versão mais recente a partir de 15/06/2015). Minha versão do Java é 1.8.0_45 e 'java -version' fornece a seguinte saída:

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)

Eu tentei as correções fornecidas em perguntas semelhantes (aqui e em outros sites de stackexchange), mas elas não funcionam. Também adicionei as seguintes linhas no / etc / environment (conforme fornecido aqui: https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts ), mas elas não estão me dando nenhum resultado aparente.

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

Tenho certeza de que deve haver uma correção para isso. Os mesmos aplicativos Java estão funcionando como deveriam no Windows-7.

hexman
fonte

Respostas:

16

Esse problema foi corrigido há muito tempo, por isso decidi postar a solução. Observe que o problema ainda está lá por padrão, mas pode ser corrigido por um parâmetro.

Adicionando esta linha:

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

para /etc/environmentcorrigir o problema.

Essa correção funciona no Ubuntu 16.04 e no OpenJDK 8u151 (não foi verificado com o Oracle JDK ou Java 9).

Exemplo de trabalho: insira a descrição da imagem aqui

Nota : Algumas fontes e configurações de AA complicam o problema. No jEdit, eu uso as fontes Java padrão ("Dialog" como é chamado) para tudo. Você provavelmente pode usar uma fonte diferente para a área de texto, mas a caixa de diálogo é a melhor opção para botões, etc. A melhor configuração de AA da área de texto que encontrei é padrão, mas sua milhagem pode variar.

hexman
fonte
11
Sua solução funciona muito bem!
Nada # B
11
Novamente necessário a partir do Ubuntu 18.10 e OpenJDK 11. E ainda está funcionando! :)
tanius