Java - Anti-aliasing de fontes em aplicações gráficas

Publicado por Leandro Nkz em 06/05/2013

[ Hits: 8.818 ]

Blog: http://brweatherproject.blogspot.com/

 


Java - Anti-aliasing de fontes em aplicações gráficas



Olá a todos!

Nesta pequena e rápida dica irei mostrar como habilitar o anti-aliasing de fontes em aplicações gráficas feitas em Java.

Aqui um exemplo:
Linux: Java - Anti-aliasing de fontes em aplicações gráficas
Esta simples calculadora fica com um aspecto muito feio se executada no GNU/Linux, mas fica normal se executada no Windows.

Mais um exemplo, agora prático:

Crie um arquivo "Teste.java" com o seguinte conteúdo:

import javax.swing.JOptionPane;

public class Teste {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Este é um teste de FONTE!", "Teste", JOptionPane.PLAIN_MESSAGE);
        System.exit(0);
    }
}

Compile (se você tiver o Java JDK instalado):

javac Teste.java

Execute:

java Teste

Repare que a fonte está serrilhada.

Para corrigir, há três maneiras:

1. A difícil:

Executar o arquivo java passando o parâmetro "-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true". No nosso exemplo, ficaria:

java -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true Teste

Mas este modo é inviável, especialmente se executamos vários programas Java diferentes.

2. A personalizada:

Adicionar este parâmetro no seu arquivo .bashrc, através da variável _JAVA_OPTIONS:

export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true"

Assim, toda vez que você executar um programa Java, automaticamente ele setará esta opção, inclusive se você executar a aplicação dentro de uma IDE (como o Eclipse, por exemplo).

Obs.: não se esqueça de efetuar logoff/logon para que as mudanças façam efeito.

3. A correta:

Altere o arquivo Java*!

*Isso se você for o próprio desenvolvedor do programa, rs.

Assim, o anti-aliasing já estará ativado por padrão, no próprio aplicativo, sem a necessidade do usuário final configurar algo.

Para isso, simplesmente adicione os parâmetros:

System.setProperty("swing.aatext", "true" );
System.setProperty("awt.useSystemAAFontSettings","on");

Dentro da classe main, antes de chamar a sua aplicação. O nosso exemplo Teste.java ficaria assim:

import javax.swing.JOptionPane;

public class Teste {
    public static void main(String[] args) {
        System.setProperty("swing.aatext", "true" );
        System.setProperty("awt.useSystemAAFontSettings","on");
        JOptionPane.showMessageDialog(null, "Este é um teste de FONTE!", "Teste", JOptionPane.PLAIN_MESSAGE);
        System.exit(0);
    }
}

Para finalizar, eis a calculadora com anti-aliasing ativado (bem melhor, não? =)):
Linux: Java - Anti-aliasing de fontes em aplicações gráficas
Referências:
Dica também publicada no Mundo GNU:
Outras dicas deste autor

Firefox - Script para empacotamento e instalação ao modo Debian

Habilitando sons do sistema no GNOME 2 do Debian 6

Como inserir o Tux/TuxDebian durante o boot do Debian

Solução para Kernel panic em Dual-boot com Grub2 para Mandriva-Mageia

Openbox encerrando ao executar programas GTK+ 3 [Resolvido]

Leitura recomendada

Alinhando texto dentro de um JTextArea em Java Swing

Como gerar números aleatórios em Java

NetBeans IDE - "Não foi possível localizar nem carregar a classe principal" [Resolvido]

Exibir ponto em expressão regular (regex)

Diferença entre replaceAll e replace na classe String em Java

  

Comentários
[1] Comentário enviado por _andre_galdino em 09/05/2013 - 08:34h

Parabéns cara.
Muito boa a dica.

[2] Comentário enviado por leandro em 09/05/2013 - 15:07h

Obrigado! =)

[3] Comentário enviado por removido em 22/03/2014 - 22:13h

é o que eu tava procurando. valeu cara!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts