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

public class JMiscExample extends JFrame {

	public JMiscExample() {
		super("JMisc example");
		Container cp = getContentPane();

		DefaultMutableTreeNode top = new DefaultMutableTreeNode("Trees");
		DefaultMutableTreeNode plants = new DefaultMutableTreeNode("Plants");
		DefaultMutableTreeNode larch = new DefaultMutableTreeNode("Larch");
		DefaultMutableTreeNode birch = new DefaultMutableTreeNode("Birch");
		DefaultMutableTreeNode algorithms =
			new DefaultMutableTreeNode("Algorithms");
		DefaultMutableTreeNode binary = new DefaultMutableTreeNode("Binary");
		DefaultMutableTreeNode fibonacci = new DefaultMutableTreeNode("2-3-4");
		top.add(plants);
		top.add(algorithms);
		plants.add(larch);
		plants.add(birch);
		algorithms.add(binary);
		algorithms.add(fibonacci);
		JTree jt = new JTree(top);
		JScrollPane sp = new JScrollPane(jt);
		JPanel left = new JPanel();
		JPanel right = new JPanel();

		Object[][] data = { { "X", "1", "Red" }, {
				"Y", "2", "Blue" }, {
				"Z", "4", "Yello" }
		};
		String[] cols = { "Letter", "Number", "Colour" };
		JTable jtb = new JTable(data, cols);
		JScrollPane jtsp = new JScrollPane(jtb);

		left.setLayout(new BoxLayout(left, BoxLayout.Y_AXIS));
		left.add(Box.createRigidArea(new Dimension(150, 10)));
		JLabel jl1 = new JLabel("A JComboBox:", JLabel.LEFT);
		jl1.setHorizontalAlignment(JLabel.LEFT);
		left.add(new JLabel("A JTree:", JLabel.LEFT));
		left.add(sp);
		left.add(Box.createRigidArea(new Dimension(150, 10)));

		right.setLayout(new BoxLayout(right, BoxLayout.Y_AXIS));
		right.add(new JLabel("A JTable:", JLabel.LEFT));
		right.add(jtsp);

		JSplitPane jsp =
			new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, left, right);
		cp.add(jsp);
	}

	public static void main(String args[]) {
		JMiscExample b = new JMiscExample();
		b.pack();
		b.setVisible(true);
	}
}
