Setar palavra em um JTextArea

Fala ae galera… tudo tranquilo???

Bom estou trabalhando em um projeto para a faculdade e me deparei com um problema que até agora não consigo resolver e peço a ajuda do pessoal do fórum ae!!

Bom é o seguinte… Eu abri um campo pra cara digitar um texto com uma JTextArea…nessa janela tem um menuBar lá em cima que tem a opção buscar palavra… Quando o cara clica ele digita a palavra e em seguida Tenhu que fazer a busca na minha TextArea para ver se a palavra existe ou não e caso exista eu queria setar essa palavra… mudar a fonte… colocar em negrito ou algo do gênero…

AE que mora a dúvida… como vou fazer uma varredura buscando as palavras e como ficaria a comparação

Eu utilizei um método da classe String chamado StringTokenizer mas parece que não fiz algo correto na hora de fazer a comparação para ver se as palavras são iguais… ae segue o código

JMenuItem palavra = new JMenuItem(“Palavra…”);
palavra.setMnemonic(‘p’);
buscar.add(palavra);
palavra.addActionListener(

			new ActionListener(){

				public void actionPerformed(ActionEvent arg0) {
					// TODO Auto-generated method stub
					
					String pBusca = JOptionPane.showInputDialog(null,"Digite a palavra a ser encontrada no texto");
					StringTokenizer token = new StringTokenizer (pBusca);
					while (token.hasMoreTokens()){
						if(token.equals (pBusca)){
                   // não sei se essa comparação tá certa... caso esteja falta ainda colocar o código que pedi acima

Bom é isso ae… Caso não tenha sido claro por favor postem aqui que eu tento esclarecer…

Um forte abraço a todos e muito obrigado pela atenção…

André Felipe

JTextArea nao serve pra suas necessidades! ela so aceita texto plano (TODO negrito, TODO vermelho, etc…)
JEditorPane resolve… http://java.sun.com/docs/books/tutorial/uiswing/components/editorpane.html

quanto à busca, tem um erro sim. o StringTokenizer separa as palavras de acordo com uma string passada. como voce tem um texto e quer comparar cada palavra do texto com a sua palavra da busca, voce pode fazer assim:

String pBusca = JOptionPane.showInputDialog(null,"Digite a palavra a ser encontrada no texto");
StringTokenizer token = new StringTokenizer (" "); //string espaço ' '
while (token.hasMoreTokens()){
String atual = token.nextToken();
if(atual.equals (pBusca)){ 
   //encontrou a palavra! da um jeito de pegar a localizacao dela pra
   //realçar o texto depois
}
}

espero que ajude

Bom amigão valeu mesmo pela dica… consegui fazer a busca aqui…
Só que é aquilo… ele acha a palavra mas eu não sei como setar essa palavra… Se alguém souber please me dá um help aqui!!!

A amigos gostaria de pedir mais uma ajuda…
Eu disponibilizei um menu para o cara poder alterar a cor de fundo do JEditorPane mas até agora não tá funfando…
E gostaria também de disponibilizar pro cara mudar a cor da fonte…
Se alguém souber please me ajuda!!!

O código dessa parte segue ae

JMenuItem formatar = new JMenuItem(“Formatar texto”);
formatar.setMnemonic(‘r’);
format.add(formatar);
formatar.addActionListener(
new ActionListener(){

				public void actionPerformed(ActionEvent evt) {
					// TODO Auto-generated method stub
					color = JColorChooser.showDialog(null,"Menu de Cores",color);
					
					if (color == null)
						color = Color.LIGHT_GRAY;
					//String text = texto.getText();
					
					
				}
				
				
			}
	
	);
	
	JMenuItem muda = new JMenuItem ("Mudar cor de fundo");
	muda.setMnemonic('m');
	format.add(muda);
	muda.addActionListener(
			
			new ActionListener(){

				public void actionPerformed(ActionEvent arg0) {
					// TODO Auto-generated method stub
					color = JColorChooser.showDialog(null,"Menu de Cores",color);
					
					if (color ==null);
					color = Color.white;
					
					texto.setBackground(color);
					JOptionPane.showMessageDialog(null,"Sua cor de fundo foi alterada \n verifique a cor de sua fonte e se necessário \n altere-a pelo menu Formatar texto");
									
				}
				
				
			}
	
	);

Bom desde já obrigado pela atenção de todos ae!!!
Grande abraço!