Pessoal estou criando um JTextArea que vai ter algumas ações de formatação, mas estou com o seguinte problema:
Como posso fazer para quando o usuario digitar uma certa palavra, apos digita-la ela trocar de cor, é tipo a mesma coisa que acontece no eclipse quando digitamos a palavra public.
Olha, dei uma pesquisada e não achei nada que trate diretamente do texto contido no JTextArea. Sinto não poder ajudar, mas convem dar uma olhada na API do Java - JTextArea http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTextArea.html
E caçar a palavra “color” talvez ajude.
abraço
m4des
ksi, não consegui achar nada referente na documentação da API, mas valeu pela dica!
fel_augusto
Para mudar a cor do texto, usa esse código (cor = a cor que você kr dar. e texto é a String texto (ou parte da string)):
E para mudar a cor de uma palavra depois de digitada, eu faria tipo assim: adicionava um KeyEvent no campo de texto, e criava uma outra string com o conteúdo que ficasse entre 1 ponto, virgula, ponto e virgula, espaço… pontuação em geral, usando split. Ai, eu verificava se aquela palavra fosse a que eu quisesse mudar de cor, e se fosse, usava aquele código acima.
Mas acho que deve ter algo + prático.
marques_eder
Olha m4des,
O que vc acha de vc criar um list com as palavras especiais que deseja colorir: List verdeList, List azulList etc. Só que dai a cada keyEvent vc tomar a palavra escrita a partir do ultimo espaço e faz um match correndo o list. Talvez seja bom usar regex. E vai incrementando o obj do StringBuilder e atualizando o JTextArea.
Na verdade eu não acho minha soluçao boa não, mas foi o q me veio na cabeça, desconfio que o desempenho disso seja muito ruim :roll: ; quem contribui em projetos de IDEs, que poderia te dar melhor dica, ainda que essas tenha toda uma gama de APIs proprias.
m4des
Pessoal ta meio foda de fazer, mas valeu pela ajuda!