Abrir arquivo rtf apenas para visualização e gravação novo rtf

boa noite, eu tenho uma classe que apos preenchida eu gostaria que o usuario pudesse clicar em “visualizar arquivo” e aparecesse o modelo (rtf) preenchido com os dados (mas nao permitisse alteração) , depois ele pudesse clicar em “gerar” (caso quisesse) e criasse um arquivo (doc, ou rtf msm).

Alguem tem uma ideia, uma luz, um caminho pra eu começar?
achei esse codigo na net, é ± isso, mas que nao possibilite edição e que salve o arquivo que abriu.

[code]
import java.awt.;
import java.io.
;
import javax.swing.;
import javax.swing.text.
;
import javax.swing.text.rtf.*;

class RTFView
extends JFrame
{
public RTFView()
{
setTitle( “RTF Text Application” );
setSize( 400, 240 );
setBackground( Color.gray );
getContentPane().setLayout( new BorderLayout() );

  JPanel topPanel = new JPanel();  
  topPanel.setLayout( new BorderLayout() );  
  getContentPane().add( topPanel, BorderLayout.CENTER );  

  // Create an RTF editor window  
  RTFEditorKit rtf = new RTFEditorKit();  
  JEditorPane editor = new JEditorPane();  
  editor.setEditorKit( rtf );  
  editor.setBackground( Color.white );  

  // This text could be big so add a scroll pane  
  JScrollPane scroller = new JScrollPane();  
  scroller.getViewport().add( editor );  
  topPanel.add( scroller, BorderLayout.CENTER );  
  // Load an RTF file into the editor  
  try {  
     FileInputStream fi = new FileInputStream( "test.rtf" );  
     rtf.read( fi, editor.getDocument(), 0 );  
       
  }  
  catch( FileNotFoundException e )  
  {  
     System.out.println( "File not found" );  
  }  
  catch( IOException e )  
  {  
     System.out.println( "I/O error" );  
  }  
  catch( BadLocationException e )  
  {  
  }  

}

public static void main( String args[] )
{
// Create an instance of the test application
RTFView mainFrame = new RTFView();
mainFrame.setVisible( true );
}
} [/code]

Obrigado

Nesse mesmo codigo, eu consegui mudar pra que a pessoa nao altere o arquivo e colocar o botao, falta só salvar agora.
Aquele esquema de salvar um txt se aplica a isso também?
Para salvar um txt, eu coloco uma string, se eu fosse salvar esse arquivo que foi aberto, como eu faria?

Esse é o codigo para salvar um txt:

[code]

public void Gravar(String texto){
String conteudo = " CONTEUDO QUE SERÁ SALVO DENTRO DO TXT";

      try{  
         String local = "arquivo.txt";
		// o true significa q o arquivo será constante  
      
         FileWriter x = new FileWriter(local,true);  
       
         new File(System.getProperty("user.dir"));
        
         conteudo += "\n\n\r"; // criando nova linha e recuo no arquivo           
         x.write(conteudo); // armazena o texto no objeto x, que aponta para o arquivo           
         x.close(); // cria o arquivo           
         JOptionPane.showMessageDialog(null,"Arquivo gravado com sucesso","Concluído",JOptionPane.INFORMATION_MESSAGE);  
      }  
      // em caso de erro apreenta mensagem abaixo  
      catch(Exception e){  
         JOptionPane.showMessageDialog(null,e.getMessage(),"Atenção",JOptionPane.WARNING_MESSAGE);  
      }  
   }  [/code]

Poderia usar esse codigo para salvar o rtf? (caso sim) ao invés de usar “string conteudo” o que usaria?

Obrigado.

Será que alguem poderia pelo menos me ajudar como eu poderia substituir ‘variaveis’ que tem no rtf?

por exemplo, eu usaria o rtf como um modelo e la teria…

nome:
rg:

no java eu leria esse rtf, e depois substituiria essas variaveis por valores que a pessoa preencheu.
Alguem poderia me ajudar com isso?

Obrigado