Boteco Digital

Java – Console Colorido

Este dias um aluno me perguntou como mudar a cor da saida de um programa JAVA no console pensei um pouco e disse nunca vi nada sobre isso, em nenhum livro ou site, acredito que não seja possível vou dar uma olhada e depois te respondo.

Bom pesquisando, descobri que a API do JAVA não fornece métodos para escrever no console utilizando cores, para isso é preciso inserir códigos de cor que pode variar conforme o S.O. ou mesmo de terminal para terminal.

Isto obviamente não é uma solução portável, então não é condizente com JAVA.

A solução que achei foi utilizar uma biblioteca Enigma Console que nada mais é do que um console feito em JAVA utilizando Swing.

Primeiramente vamos baixar a biblioteca Enigma Console. Descompacte o arquivo em uma pasta de sua escolha e adicione à variável de ambiente CLASSPATH o caminho absoluto para a biblioteca Enigma Console por exemplo:

Variavél de ambiente CLASSPATH

.;c:\enigma\enigma-all_en_US.jar;

Agora basta utiliza-la no código como no exemplo abaixo:

import java.awt.Color;
import enigma.console.*;
import enigma.core.Enigma;

public class Cor{

    public static void main(String[] args){
        Console s_console = Enigma.getConsole(); 
        TextAttributes attrs;
        attrs = new TextAttributes(new Color(96,223,79), new Color(76,62,175));
        s_console.setTextAttributes(attrs);
        System.out.println("Fundo azul com letras verdes");


        attrs = new TextAttributes(new Color(255,90,90), new Color(234,255,90));
        s_console.setTextAttributes(attrs);
        System.out.println("Fundo amarelo com letras vermelhas");

    }
}

Na linha 1 à 3 importamos os objetos que iremos utilizar tanto o objeto do console como a classe Color para podermos definir as cores.

Na linha 8 é onde chamamos o método que cria um novo console e muda a saída padrão para ele, ou seja a partir de agora tudo que escrevermos na saída padrão( System.out ) será escrito no novo console!

Na linha 10 é onde definimos os atributos do nosso texto, ou seja, a cor de fundo e a cor do texto, o construtor os parâmetros nesta mesma ordem. Note que utilizamos objetos Color para representar as cores, o construtor deste objeto recebe 3 valores inteiros de 0-255 no sistema RGB(Vermelho,Verde,Azul) para representar a cor, se precisar use um editor de imagem para descobrir os valores da cor que você deseja.

Na linha 11 configuramos o console com as configurações feitas na linha 10. A partir de agora todo texto escrito no console terá as cores definidas.

Para mudar as cores novamente basca configurar o console novamente com as novas cores desejadas.

Veja como vai ficar o exemplo acima:

console

E por hoje é só pessoal!

Categorias Dicas Java
comments powered by Disqus