JTextArea

Bom dia pessoal. :thumbup:

Sou novo nesse Forum e espero ter postado no local certo. Se não foi, desculpem a falha!!!
Faço o curso de Ciencia da Computação e meu professor pediu para que implementássemos uma área de digitação de código, tipo do Eclipse e que fizesse algo semelhante, ou seja, que quando ele digitasse palavras reserbvadas nessa área elas ficassem em outra cor. Exemplo:
Ele passou as seguintes palavras e as cores -

Escrever = color.vermelho;
Gravar = color.verde;
Abrir = color.azul;
Add = color.laranja;

ele entao usaria essa área para digitar os comandos que deverão ser processados ao clicar no botão, tipo:

Escrever 35
Escrever 40
Escrever Minha casa é amarela
Gravar texto.txt

E da mesma forma, pede tb pra abrir um arquivo txt nessa área e que as palavras reservadas fiquem coloridas.

Problema: Eu nunca usei interface gráfica no Java.

Já consegui construir a interface com um JTextArea, um botton, e executar Abrir o Documento txt dentro dela (foi um custo),

Agora falta eu gravar os dados dessa JTextArea num arquivo txt e COLORIR ESSAS PALAVRAS.

SERÁ QUE VOCÊ ME AJUDARIAM COM ESSE CÓDIGO PARA COLORIR AS PALAVRAS?

A INTERFACE É A SEGUINTE

Obrigado e conto com a ajuda de vocês, grandes mestres!!! :smiley:

Você precisa usar um JTextPane, não um JTextArea. O JTextArea não suporta formatação.
Já teve até gente aqui no GUJ que postou algo parecido:
http://www.guj.com.br/posts/list/48736.java

Esse trabalho é um pouco mais difícil do que parece. Primeiramente, você precisa entender o que é o Document, e como ele funciona. Comece fazendo um tutorial simples, como o Controlando um JTextField. Depois, procure sobre o FormattedDocument.

Agradeço sua resposta.
Mas gostaria de lhe perguntar: qual a diferença entre os dois componentes, o JTextArea e o JTextField?

AH! com esse código eu consegui mudar a cor do texto, mas foi de tudo que estava escrito lá dentro do TextArea e nao somente da palavra localizada


textArea.setForeground(Color.RED);

Valeu mais uma vez

Só uma coisa:
CARACA… O BENDITO EDITOR É MAIS COMPLICADO QUE IMAGINEI. TEM ATÉ STYLE, IMAGE, ETC…
EU TÔ FERRADO!!!
:frowning: :cry:

Ambos são JTextComponent, então, tem muito em comum, como depender de um Document.

A diferença básica entre eles é:
JTextField: Não suporta formatação e suporta apenas uma única linha de texto;
JTextArea: Não suporta formatação e suporta várias linhas de texto;
JTextPane: Suporta formatação, não suporta edição e várias linhas de texto.
EditorPane: Suporta formatação, edição e várias linhas de texto.

Você precisa usar o último. Dá uma lida nesse tutorial:
http://java.sun.com/docs/books/tutorial/uiswing/components/editorpane.html

Poxa fera, valeu mesmo.
Tu é d+
Ja sou seu fã. hehehehehe :slight_smile:
Brigadão, vou debruçar sobre isso hoje a tarde.
Valeu :smiley:

RAM WEB, bem vindo ao GUJ!
Por favor evite “pedir” trabalhos prontos, tenten sempre colocar seus códigos para que possam te acjudar e tirar dúvidas sobre coisas que vc não conhece bem.
Isso evita que o pessoal comece brigas porque ninguém gosta quando aparecem pedindo pra fazer trabalho de escola, sei que vc esta tentando fazer e esse é o caminho.

Obrigado!

Opa Luiz,

desculpa a mancada. Eu na verdade não queria um código pronto (Até que não é uma má ideia), mas queria mesmo era indicações de como começar.
Mas valeu pela chamada de atenção. :oops:
Mais uma vez desculpa essa falha.
Obrigado. :wink: