import java.awt.Frame;
import java.awt.TextArea;

public class PrintFrame extends Frame {

    TextArea display;

    public PrintFrame(TextArea d)
    {
      super("PrintFrame");

      display = d;

      setResizable(true);
      //setBounds(30, 30, 100, 100);
      reshape(350, 30, 100, 100);
    }

    String threadInfo(Thread t) {
      try {
        return "thread=" + t.getName() + ", "
               + "thread group=" + t.getThreadGroup().getName();
      } catch (SecurityException e) {
         return "thread=" + t.getName() + ", "
            + "!!! EXCEPTION for getThreadGroup";
      }
    }

    void addItem(String newWord) {
        System.out.println(newWord);
        display.appendText(newWord + "\n");
        display.repaint();
    }

    public boolean handleEvent(java.awt.Event event) {
        addItem("handleEvent: " + threadInfo(Thread.currentThread()));
        return super.handleEvent(event);
    }

    public void layout() {
        addItem("layout: " + threadInfo(Thread.currentThread()));
        super.layout();
    }
}
