Se può esserti d'aiuto, ho buttato giù qualche righetta di codice d'esempio (molto stupido come programmino, eh...):
	codice:
	import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.*;
public class Testo extends JFrame {
   private BufferedReader br;
   private JTextPane jtp;
   private JScrollPane jsp;
   private Container c;
   private StyledDocument doc;
   public Testo(String file) {
      
      c = getContentPane();
      c.setLayout( new BorderLayout() );
      jtp = new JTextPane();
      jsp = new JScrollPane( jtp );
      creaStili( jtp.getStyledDocument() );
      doc = jtp.getStyledDocument();
      c.add(jsp, BorderLayout.CENTER);
      caricaFile(file);
      setDefaultCloseOperation( EXIT_ON_CLOSE );
      setSize(800, 600);
      setResizable( false );
      setTitle("Guarda la casa");
      setVisible( true );
   }
   private void caricaFile(String file) {
      try {
         br = new BufferedReader( new InputStreamReader( new FileInputStream(file) ) );
         String linea = "";
         while((linea = br.readLine()) != null) {
            printaTesto( linea );
         }
         br.close();
      } catch (Exception e) { e.printStackTrace(); }
   }
   private void printaTesto(String linea) throws Exception {
      String[] tokens = linea.split(" ");
      String prima = "";
      String dopo = "";
      String content = "";
      int pos = 0;
      for(int id=0; id<tokens.length; id++) {
         if ( tokens[id].toLowerCase().indexOf("casa") >= 0 ) {
            pos = tokens[id].toLowerCase().indexOf("casa");
            prima = tokens[id].substring(0,pos);
            dopo = tokens[id].substring(pos+4,tokens[id].length());
            content = tokens[id].substring(pos, pos+4);
            doc.insertString(doc.getLength(), prima, doc.getStyle("normale"));
            doc.insertString(doc.getLength(), content, doc.getStyle("casa"));
            doc.insertString(doc.getLength(), dopo, doc.getStyle("normale"));
         } else {
            doc.insertString(doc.getLength(), tokens[id], doc.getStyle("normale"));
         }
         doc.insertString(doc.getLength(), " ", doc.getStyle("normale"));
      }
      doc.insertString(doc.getLength(), "\n", doc.getStyle("normale"));
   }
   private void creaStili(StyledDocument sd) {
      Style deflt = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
      // Stile normale
      Style normale = sd.addStyle("normale", deflt);
      StyleConstants.setFontFamily(deflt, "Arial");
      StyleConstants.setForeground(deflt, Color.black);
      StyleConstants.setFontSize(deflt, 12);
      // Stile "casa"
      Style s = sd.addStyle("casa", normale);
      StyleConstants.setItalic(s, true);
      StyleConstants.setUnderline(s, true);
      StyleConstants.setForeground(s, Color.blue);
      StyleConstants.setFontSize(s, 11);
   }
   public static void main(String [] args) {
      if (args.length > 0) {
         Testo t = new Testo( args[0] );
      }
   }
}
 
Come si usa: lo compili normalmente e lo avvii in questo modo:
	codice:
	java Testo nomeFile
 
dove nomeFile è il nome di un file di testo qualsiasi. Per vederne gli effetti è necessario che il file di testo contenga al suo interno la parola casa (una o più volte, non necessariamente tutta in minuscolo; il file più comodo è il sorgente stesso  ). Se il file di testo non è nella stessa directory dell'applicazione è necessario passargli tutto il percorso.
 ). Se il file di testo non è nella stessa directory dell'applicazione è necessario passargli tutto il percorso.
Ciao. 