davidhc
Fevereiro 14, 2007, 3:31pm
#1
protected static String append(String msg) {
String mensagemFormatada = null;
SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setForeground(attrs, Color.red);
StyleConstants.setItalic(attrs, true);
StyleConstants.setBold(attrs, true);
Document doc = textAreaConsole.getDocument();
msg += "\n";
try {
doc.insertString(doc.getLength(), msg, attrs);
} catch (BadLocationException ex) { ex.printStackTrace(); }
return mensagemFormatada;
}
public static void lerMensagensConsole() {
String mensagem = MensagensConsole.getMensagens();
if(mensagem.contains("Problema")) {
textAreaConsole.setText(append(mensagem));
}
textAreaConsole.setText(textAreaConsole.getText() + "\n" + mensagem);
textAreaConsole.setCaretPosition(textAreaConsole.getDocument().getLength());
}
o metodo lerMensagens recebe a mensagem de uma classe e verifica se ela tem a palvra “erro”. Se tiver, ela é formtada e exibida de novo…o problema é que ela é exibida de novo só que não é formatada!
alguem pode me ajudar?
Use getStyledDocument() do seu JTextPane ao invés do getDocument().
davidhc
Fevereiro 14, 2007, 5:20pm
#3
não resolveu…continua imprimindo tudo em preto e do mesmo jeito rs
Deve estar faltando vc adicionar o Style em seu JTextPane.
protected static String append(String msg) {
String mensagemFormatada = null;
Style style = textAreaConsole.addStyle(name, null)
StyleConstants.setForeground(style , Color.red);
StyleConstants.setItalic(style , true);
StyleConstants.setBold(style , true);
Document doc = textAreaConsole.getDocument();
msg += "\n";
try {
doc.insertString(doc.getLength(), msg, style );
} catch (BadLocationException ex) { ex.printStackTrace(); }
return mensagemFormatada;
}
davidhc
Fevereiro 15, 2007, 9:07am
#5
ele imprime em vermelho agora, mas acaba apagando o que está em vermelho e o restante da tela…só mostra as novas mensagens,…e quando chega uma em vermelho, acontece a mesma coisa…sabe o q pode ser?
quando ele sai do metodo lerMensagensConsole() , ele apaga o que estava na tela…
e quando eu mudo os metodos para
private static void append(String msg) {
Document doc = textAreaConsole.getDocument();
Style style = textAreaConsole.addStyle("style", null);
StyleConstants.setForeground(style , Color.red);
StyleConstants.setItalic(style , true);
StyleConstants.setBold(style , true);
try
{
doc.insertString(doc.getLength(), msg, style );
} catch (BadLocationException ex) { ex.printStackTrace(); }
}
public static void lerMensagensConsole() {
String mensagem = MensagensConsole.getMensagens();
if(mensagem.contains("Problema")) {
append(mensagem);
} else {
textAreaConsole.setText(textAreaConsole.getText() + "\n" + mensagem);
textAreaConsole.setCaretPosition(textAreaConsole.getDocument().getLength());
}
}
A mensagem é impressa normalmente, mas perde o vermelho e volta a ser a cor padrão
davidhc
Fevereiro 15, 2007, 9:38am
#6
problema resolvido…o que faltava era um Style para quando não fosse imprimir em vermelhor
vlw pela ajuda Ang