Olá André!
É, infelizmente como disse o nosso amigo acima, o jTextArea não aceita esse tipo de formatação.
Apenas formatação do campo inteiro, o que não é o seu caso.
Para áreas de formatação assim, você deve usar o jTextPane, e setar os atributos na inserção da String.
Para isso, no seu Frame, declare as seguintes variáveis:
private javax.swing.JTextPane txtPaneSituacao;
private SimpleAttributeSet attributeSet; // Atributos do jTextPane
private Document doc; // Documento que vc estará formatando
Inicialize com as operações abaixo:
attributeSet = new SimpleAttributeSet();
doc = txtPaneSituacao.getStyledDocument();
StyleConstants.setForeground(attributeSet, Color.BLACK);
fonte = new java.awt.Font("Tahoma",java.awt.Font.BOLD,11);
StyleConstants.setFontFamily(attributeSet, fonte.getName());
StyleConstants.setFontSize(attributeSet, fonte.getSize());
Faça também, para facilitar sua vida, o método abaixo:
/* Inserindo texto no TextPane */
private void insertText(String text, java.awt.Color cor, boolean negrito, boolean italico)
{
// Mudando a cor de fonte, e atributos da fonte
StyleConstants.setForeground(attributeSet, cor); // Cor do texto
StyleConstants.setItalic(attributeSet, italico); // Itálico
StyleConstants.setBold(attributeSet, negrito); // Negrito
try {
doc.insertString(doc.getLength(),text,attributeSet);
} catch (BadLocationException ex) {
ex.printStackTrace();
// Caso der erro, insira sem formatação mesmo!!!
txtPaneSituacao.setText(txtPaneSituacao.getText() + text);
}
}
Esse método trocará os atributos toda vez que vc for inserir no texto, mas mesmo assim vale a pena
Se quiser, pode instanciar o attributeSet no método, mas aí terá que passar também a fonte como parâmetro
Espero ter ajudado. Boa sorte!