Hola,
el metodo getCaretPosition() devuelve la posicion donde se encuentra el (|) en el texto, esta posicion es un entero que va desde 0 hasta el ultimo caracter de lo que esta escrito dentro del JTEXTAREA. ademas existe el metodo insert(String s, int pos), que escribe el texto s en la posicion pos, la posicion la obtendremos con el primer metodo mencionado. Bueno te paso de una vez el codigo, para que lo pruebes, espero sea de ayuda :). Saludos
=========================================================
/* Inserta la palabra NUEVO, en la posicion del | dentro de JTextArea
@author Luis Roberto Perez Rios*/
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
public class Marco extends JFrame{
private JTextArea area;
private JButton boton;
public Marco(){
super("Insertar");
setLayout(new BorderLayout());
setSize(200,200);
area = new JTextArea();
boton = new JButton("Insertar NUEVO");
boton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
area.insert("NUEVO", area.getCaretPosition());
}
});
add(area, BorderLayout.CENTER);
add(boton, BorderLayout.SOUTH);
}
public static void main(String[] arg){
Marco marco = new Marco();
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setVisible(true);
}
}