ho trovato del codice che svolge questa funzione :

codice:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.regex.*;
import javax.swing.*;
import javax.swing.text.*;

public class JSyntaxHighlight extends JTextArea implements KeyListener
  {

  Highlighter evidenziatore;
  Highlighter.HighlightPainter effetto;
  Pattern pattern;
  Matcher matcher;
  String keyWords[]= { "abstract","boolean","break","byte","case","catch","char","class","const","continue","default","do","double","else","extends","final","finally","float","for","goto","if","implements","import","instanceof","int","interface","long","native","new","package","private","protected","public","return","short","static","super","switch","syncronized","this","throw","throws","transient","try ","void","volatile ","while" };
  public JSyntaxHighlight()
    {
    super();
    evidenziatore = getHighlighter();
    effetto = new DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW);
    addKeyListener(this);
    }

  public void keyReleased(KeyEvent ke) {}

  public void keyPressed(KeyEvent ke) {}

  public void keyTyped(KeyEvent ke)
    {
    evidenziatore.removeAllHighlights();
    try
      {
      for(int i = 0; i < keyWords.length; i++)
        {
        pattern = Pattern.compile("\\b" + keyWords[i] + "\\b");
        matcher = pattern.matcher(getText());
        while(matcher.find())
          evidenziatore.addHighlight(matcher.start() , matcher.end() , effetto);
        }
      }
     catch(Exception e) {}
    }

  }

codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;

public class Prova extends JFrame implements ActionListener {
JSyntaxHighlight hight;
JPanel panel;
JButton crea,exit;

public Prova() {
setTitle( "Inserimento dati per una simulazione da testo" );
setSize( 600, 500 ); 
panel = new JPanel(new BorderLayout());
//areaTesto.setSize(new Dimension(600,400) );
//JScrollPane scrollingArea = new JScrollPane(areaTesto);
hight= new JSyntaxHighlight();
crea=new JButton("Controlla e Crea");
exit=new JButton("Exit");
//quando si passa il mouse sopra il crea appare questa scritta
crea.setToolTipText("Verifica i dati e avvia la simulazione"); 
exit.setToolTipText("Chiude la finestra"); 

//aggiunge crea e label al pannello
panel.add(crea , BorderLayout.NORTH);
panel.add(exit , BorderLayout.SOUTH);
panel.add(hight, BorderLayout.CENTER);

getContentPane().add( panel );

// Posiziona al centro dello schermo.
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frame = getSize();
setLocation(
(screen.width - frame.width) / 2,
(screen.height - frame.height) / 2
);

//registra evento click sul crea
crea.addActionListener(this);
exit.addActionListener(this);
}

//crea ascoltatore di eventi 
public void actionPerformed( ActionEvent event )
{
Object source = event.getSource();
if(source==crea){ }
if(source==exit){ System.exit(-1); }

}


//main 
public static void main(String args[]) {new Prova().show(); }
}