FileDocCategorySizeDatePackage
StdErrOutWindows.javaAPI DocExample2230Mon Jan 09 11:02:02 GMT 2006None

StdErrOutWindows.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class StdErrOutWindows extends Object {

    JTextArea outArea, errArea;

    public StdErrOutWindows () {
        // out
        outArea = new JTextArea (20, 50);
        JScrollPane pain =
            new JScrollPane (outArea,
                             ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
                             ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        JFrame outFrame = new JFrame ("out");
        outFrame.getContentPane().add (pain);
        outFrame.pack();
        outFrame.setVisible(true);
        // err
        errArea = new JTextArea (20, 50);
        pain =
            new JScrollPane (errArea,
                             ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
                             ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        JFrame errFrame = new JFrame ("err");
        errFrame.getContentPane().add (pain);
        errFrame.pack();
        errFrame.setLocation (errFrame.getLocation().x + 20,
                              errFrame.getLocation().y + 20);
        errFrame.setVisible (true);
        // set up streams
        System.setOut (new PrintStream (new JTextAreaOutputStream (outArea)));
        System.setErr (new PrintStream (new JTextAreaOutputStream (errArea)));
    }

    public static void main (String[] args) {
        new StdErrOutWindows();
        // test
        System.out.println ("test to out");
        System.out.println ("another test to out");
        try {
            throw new Exception ("Test exception");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public class JTextAreaOutputStream extends OutputStream {
        JTextArea ta;
        public JTextAreaOutputStream (JTextArea t) {
            super();
            ta = t;
        }
        public void write (int i) {
            char[] chars = new char[1];
            chars[0] = (char) i;
            String s = new String (chars);
            ta.append(s);
        }
        public void write (char[] buf, int off, int len) {
            String s = new String (buf, off, len);
            ta.append(s);
        }

    }

}