Pular para o conteúdo

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

Dica publicada em Java / Introdução
Leandro Nkz leandro
Hits: 9.536 Categoria: Java Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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"
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Openbox encerrando ao executar programas GTK+ 3 [Resolvido]

Habilitando sons do sistema no GNOME 2 do Debian 6

Tint2 com menu do Openbox

LibreOffice - Corrigindo aspas duplas/simples

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

Convertendo Matriz para Lista em Java e Lista para Matriz

Entendendo intefaces - POO

Java - Instalação em três passos no Ubuntu

Listar todos arquivos de uma pasta com Java

Como converter ASCII para char ou char para ASCII em Java

#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

Entre na sua conta para comentar.