Trocando fontes de textos de um JTextPane usando um JComboBox

1 resposta
FrostyChaotix

Olá

Estou fazendo um mini editor de texto de trabalho da escola técnica, mas estou com um problema.
Implementei uma combo box que troca a fonte dos textos selecionados no JTextPane, só que ocorre o seguinte:
quando eu clico para trocar de fonte, sem nada selecionado, os primeiro caracter fica da fonte desejada, mas logo em seguida o resto do texto passa a pertencer a fonte padrão (no caso, times new roman).
Este foi o código que usei no combobox (está cercado pelo ActionListener do Formulário Principal):

if (arg0.getSource() == barraTarefas.cmbfont){ action = new StyledEditorKit.FontFamilyAction("",barraTarefas.cmbfont.getSelectedItem().toString()); action.actionPerformed(arg0); }

Até aí tudo funciona muito bem, mas quando vc clica num texto de fonte diferente, o combo box não muda o seu texto… por exemplo, se eu tenho uma fonte em Arial numa frase, e clico na de baixo que está em Times New Roman, o texto da combo box ainda fica em Times New Roman. :?

daí tentei fazer o seguinte:

public void caretUpdate(CaretEvent arg0) { barraTarefas.cmbfont.setSelectedItem(documento.documentspace.getStyledDocument().getFont(documento.documentspace.getCharacterAttributes()).getFamily()); barraTarefas.cmbfontsize.setSelectedItem(String.valueOf(documento.documentspace.getStyledDocument().getFont(documento.documentspace.getCharacterAttributes()).getSize())); }

Daí surgiu o problema, toda vez q esse código eh executado, ele automaticamente chama o ActionListener do ComboBox, fazendo com q a fonte troque para a do proximo caracter (mas q no caso, ainda vai ser o Times New Roman padrão).É isso mesmo que acontece? :?

Como eu faço pra resolver esse problema?
Se esta pergunta ja foi feita antes desculpe-me, mas procurei no forum e não achei nada parecido

Obrigado
Frosty Chaotix

1 Resposta

FrostyChaotix

ninguem? :frowning:

Criado 9 de outubro de 2007
Ultima resposta 10 de out. de 2007
Respostas 1
Participantes 1