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

5

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

Tudo parece estar funcionando bem, exceto que os aplicativos Java-Swing estão tendo 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); está afetando apenas aplicativos baseados em Swing.

O Eclipse parece estar funcionando bem, mas é uma preocupação séria para mim, já que sou um desenvolvedor Java e uso principalmente o Swing para meus aplicativos (sem SWT ou qualquer outra alternativa nativa).

Imagens: (jEdit v5.1)

Estou executando o Ubuntu 15.04 (que é a versão mais recente em 2015-06-15). 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 dadas em perguntas semelhantes (aqui e em outros sites do stackexchange), mas elas não funcionam. Eu também adicionei as seguintes linhas no / etc / environment (como dado aqui: link ), mas elas são não me dando nenhum resultado aparente.

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

Tenho certeza que deve haver uma correção para isso. Os mesmos aplicativos Java estão funcionando como deveriam no Windows-7. Eu não posso me dar ao luxo de portar meu Swing aplicativos para SWT simplesmente por causa deste pequeno problema, nem eu posso parar o desenvolvimento. Mas eu não posso fazer nada sobre isso, pois é um problema com o Sistema Operacional.

    
por hexman 15.06.2015 / 13:03

1 resposta

3

Este problema já foi consertado, então 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/environment corrige o problema.

Esta correção funciona a partir do Ubuntu 16.04 e OpenJDK 8u151 (não verificado com o Oracle JDK ou Java 9).

Exemplo de trabalho:

Observação : algumas fontes e configurações de AA complicam o problema. No jEdit, eu uso as fontes Java padrão ("Dialog", como é chamado) para tudo. Provavelmente você pode usar uma fonte diferente para a Área de Texto, mas a Caixa de Diálogo é a melhor para botões, etc. A melhor configuração de Área de Texto AA que eu encontrei é padrão , mas sua milhagem pode variar. p>     

por hexman 24.11.2017 / 17:20

Tags