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

public class canvas implements ActionListener
{
    JFrame f;
    Button b;
    Canvas c;

    public static void main(String argv[])
    {
	canvas c = new canvas();
	c.run();
    }

    public void run() 
    { 
	printComponentTree(f);
	f.show(); 
    }

    public void printComponentTree(Container myc)
    {
	printComponentTree(myc, "");
    }

    public void printComponentTree(Container myc, String s)
    {	
	if (s == null) { s = new String(""); }
	Component [] mycomps = myc.getComponents();
	for (int i = 0; i < mycomps.length; i++) {
	    System.out.println(s + "----------------");
	    System.out.println(s + mycomps[i]);
	    System.out.println(s + "Parent: " + mycomps[i].getParent());
	    System.out.println(s + "----------------");
	    if (mycomps[i] instanceof Container)
		printComponentTree((Container)mycomps[i], s+"   ");
	}
    }

    public canvas()
    {
	f = new JFrame();
	Container container = f.getContentPane();
	b = new Button("Quit");
	Canvas c = new Canvas();
	JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false,
				       b, c);
	sp.setDividerSize(10);
	container.add(sp);
//  	container.add(b);
	f.pack();
    }

    public void actionPerformed(ActionEvent e)
    {
	System.exit(0);
    }
}
