Tenho uma JTextArea e um botao, gostaria que ao pressionar este botao ele me colocasse o texto selecionado em BOLD, ou entao o texto que eu começasse a escrever depois de pressionar o botao seria todo em bold.
eu sei algumas partes…vc precisa adicionar um mouselistner no botao e depois usar um JEditorPane ( nao sei como q usa ) e depois setar onegrito ( tb nao sei rsrs )
Andei conversando com o André aqui (o mesmo que fez o editor de texto desse link http://www.guj.com.br/posts/list/48736.java) e ele me explicou que o ideal é usar um filho do JEditorPane, chamado JTextPane.
Basicamente, você não edita o JTextPane diretamente. Você faz isso através da interface document. Por exemplo, para adicionar um texto no pane você faz:
O terceiro parâmetro do insertString (que está null) é um AttributeSet. Nele, você poderia alterar os atributos do texto a ser inserido, como colocar cor ou deixar em negrito.
Por exemplo, você poderia fazer um AttributeSet assim:
Oi,
a duvida dele é como fazer isso no JTextArea, e não em um JEditorPane gente!
Bom para trocar o tipo de fonte do seu JTextArea ao clicar no botão, faça o seguinte no evento do seu botão:
[code]
/**
Ação quando clicado no botão.
*/
Action
io_ie_mudar_cor = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
io_tf_area_principal.setFont(FONTE_FIXA);
}
};[/code]
Note que o FONTE_FIXA você deve declarar uma variavel:
public final static Font
FONTE_FIXA = new Font("Monospaced", Font.BOLD, 12);
Bom, se você quiser mudar a fonte apartir de quando clicar no botão, existem varios algoritimos para isso… verifica posição do caret e dali pra frente mude a fonte… ou então, ao selecionar o texto clicando no botão você mude o tipo de fonte.
Sim, Lina, mas ele falou que quer mudar apenas o texto selecionado. O TextArea trabalha com texto plano, ou seja, ou você muda a fonte de todo mundo, ou não muda de ninguém.
Ele deve usar um JTextPane, onde é possível lidar com texto formatado.
Achei uma série de exemplos, no JavaAlmanac. Você pode dar uma olhada, para entender como o JTextPane trabalha.
offset : início de ondes a modificação dever ocorrer
length: tamanho da modificação, inclusive
style : Style que será usado, pode ser igual ao do Vinícius postado acima.
true : Substitui o style presente.