Hola, aqui pongo un ejemplo de corrector de palabras, aunque sencillo, funciona correctamente. Espero que te sirva:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Corrector{
public static void main( String args[] ){
JFrame ventana = new FormaCorrector();
}
}
class FormaCorrector extends JFrame{
public FormaCorrector(){
super( "Corrector de palabras" );
iniciarGUI();
setSize( 400, 320 );
setLocationRelativeTo( null );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setResizable( false );
setVisible( true );
}
private void iniciarGUI(){
contenedor = getContentPane();
contenedor.setLayout( null );
JLabel mensaje = new JLabel( "Texto:" );
contenedor.add( mensaje );
mensaje.setBounds( 50, 20, 80, 28 );
txtDocumento = new JTextArea();
JScrollPane deslizador = new JScrollPane( txtDocumento );
contenedor.add( deslizador );
deslizador.setBounds( 50, 50, 300, 100 );
mensaje = new JLabel( "Buscar:" );
contenedor.add( mensaje );
mensaje.setBounds( 10, 180, 80, 28 );
cmpCaracter = new JTextField();
contenedor.add( cmpCaracter );
cmpCaracter.setBounds( 60, 180, 100, 28 );
mensaje = new JLabel( "Reemplazar por:" );
contenedor.add( mensaje );
mensaje.setBounds( 190, 180, 100, 28 );
cmpCaracterNuevo = new JTextField();
contenedor.add( cmpCaracterNuevo );
cmpCaracterNuevo.setBounds( 290, 180, 100, 28 );
agregarBoton( contenedor, "Reemplazar", 50, 240,
new ActionListener(){
public void actionPerformed( ActionEvent evento ){
reemplazar();
}
}
);
agregarBoton( contenedor, "Salir", 220, 240,
new ActionListener(){
public void actionPerformed( ActionEvent evento ){
System.exit( 0 );
}
}
);
}
private void reemplazar(){
if ( txtDocumento.getText().length() == 0 ){
JOptionPane.showMessageDialog( FormaCorrector.this, "No hay texto para corregir", "Error", JOptionPane.ERROR_MESSAGE );
return;
}
if ( cmpCaracter.getText().length() == 0 ){
JOptionPane.showMessageDialog( FormaCorrector.this, "No hay un caracter a buscar", "Error", JOptionPane.ERROR_MESSAGE );
return;
}
if ( cmpCaracterNuevo.getText().length() == 0 ){
JOptionPane.showMessageDialog( FormaCorrector.this, "No hay un caracter a reemplazar", "Error", JOptionPane.ERROR_MESSAGE );
return;
}
txtDocumento.setText( txtDocumento.getText().replace(
cmpCaracter.getText().charAt( 0 ),
cmpCaracterNuevo.getText().charAt( 0 ) )
);
}
private void agregarBoton( Container c, String texto, int x, int y,
ActionListener accion ){
JButton boton = new JButton( texto );
c.add( boton );
boton.setBounds( x, y, 130, 28 );
boton.addActionListener( accion );
}
private Container contenedor;
private JTextField cmpCaracter;
private JTextField cmpCaracterNuevo;
private JTextArea txtDocumento;
}