Texto do JTextPane com cores diferentes [RESOLVIDO]

6 respostas
eliangela

Olá Pessoa!

Queria fazer um JTextPane ficar igual o Console de saída do Netbeans (vide anexo), mas com o texto sendo inserido automaticamente (sem o usuário digitar), igual acontece com o Netbeans. O problema é que eu não sei como fazer isso. Segue meu código:
private StyledDocument doc;
    private Style styleErros;
    private Style styleAviso;
    private Style styleSucesso;
    private JTextPane tSaida;

    public void colore() {
        tSaida = new JTextPane();

        doc = tSaida.getStyledDocument();
        styleErros = tSaida.addStyle("Erros", null);
        StyleConstants.setForeground(styleErros, Color.RED);

        styleSucesso = tSaida.addStyle("Sucesso", null);
        StyleConstants.setForeground(styleSucesso, Color.GREEN);

        styleAviso = tSaida.addStyle("Aviso", null);
        StyleConstants.setForeground(styleAviso, Color.ORANGE);

        tSaida.setText("Executado com sucesso!\n\n");
        doc.setCharacterAttributes(0, 22, tSaida.getStyle("Sucesso"), false);
    }

De acordo com as ocorrências (Erro, Sucesso ou Aviso), quero que seja adicionado os textos um embaixo do outro, como acontece no console do Netbeans.

Até mais

6 Respostas

ajfilho

Uma pergunta:

Você saca bem de HTML e CSS?? :stuck_out_tongue:

Podes fazer isso:

seuTextPane.setContentType("text/html"); seuTextPane.setText("<html><b style=color:red>ALOOOOO!!!!!</b></html>");

Abraços!

eliangela

afff… que ridículo!
Eu tava me matando aqui por causa de uma coisa tão boba!

Eu não sabia que o Swing entendia tags HTML.

Valeu ajfilho!!

eliangela

Aff…
esqueci de falar!
Preciso fazer uma coisa parecida com o JTextArea.append() no JTextPane.
Existe alguma maneira?

Obrigada

ajfilho

Usa o StringBuilder para manipular o texto e depois seta no JTextPane.

seuTextPane.setText(seuStringBuilder.toString());

Abraços!

eliangela

obrigada pela ajuda!
Resolvido!

progJava

Não entendi muito o que foi feito teria um outro ex ? Desde ja Obrigado!

Criado 4 de dezembro de 2009
Ultima resposta 7 de dez. de 2009
Respostas 6
Participantes 3