dovresti scrivere una classe che estenda OutputStream e quindi usare setOut di System, passando la tua classe come argomento. Ovviamente ci sarà una JTextArea su cui farai l'append di quanto in arrivo al tuo write.
codice:
import javax.swing.*;
import java.io.*;

/**
 *
 * @author Andrea
 */
public class JTextAreaOutRedirect extends JFrame {
    
    private OutputRedirect outr;
    
    private class OutputRedirect extends OutputStream {
        
        private JTextArea ta;
        
        public OutputRedirect(JTextArea ta) {
            this.ta = ta;
        }
        
        public void write (int cosa) throws IOException {
            ta.append(String.valueOf((char) cosa));
        }
    }
    
    public JTextAreaOutRedirect() {
        super("Console Output Redirect Test");
        this.setSize(400,400);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTextArea ta = new JTextArea();
        PrintStream ps = new PrintStream(new OutputRedirect(ta));
        System.setErr(ps);
        System.setOut(ps);
        this.getContentPane().add(new JScrollPane(ta));
        this.setVisible(true);
    }
    
    public static void main (String[] args) {
        new JTextAreaOutRedirect();
        System.out.println("Dovrebbe finire nella JTextArea");
    }
    
}
[EDIT]

Alex'87 rules
[/EDIT]