Monday, February 3, 2014

Example of JTree.

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

public class JTreeDemo
{
    public static void main(String surat[])
    {
        new JTreeDemo();
    }

    public JTreeDemo()
    {
        JFrame f = new JFrame("JTree Demo");
        Container c = f.getContentPane();
        c.setLayout( new BorderLayout() );

        //Create top node of a tree
        DefaultMutableTreeNode top = new DefaultMutableTreeNode("Course");

        //Create a subtree
        DefaultMutableTreeNode UG = new DefaultMutableTreeNode("Bachelor");
        top.add(UG);

        DefaultMutableTreeNode a1 = new DefaultMutableTreeNode("B.E");
        UG.add(a1);
        DefaultMutableTreeNode a2 = new DefaultMutableTreeNode("B.C.A");
        UG.add(a2);
        DefaultMutableTreeNode a3 = new DefaultMutableTreeNode("B.Sc");
        UG.add(a3);
        DefaultMutableTreeNode a4 = new DefaultMutableTreeNode("B.Com");
        UG.add(a4);
        DefaultMutableTreeNode a5 = new DefaultMutableTreeNode("B.A");
        UG.add(a5);

        //Create a subtree
        DefaultMutableTreeNode PG = new DefaultMutableTreeNode("Master");
        top.add(PG);

        DefaultMutableTreeNode b1 = new DefaultMutableTreeNode("M.E");
        PG.add(b1);
        DefaultMutableTreeNode b2 = new DefaultMutableTreeNode("M.C.A");
        PG.add(b2);
        DefaultMutableTreeNode b3 = new DefaultMutableTreeNode("M.Sc");
        PG.add(b3);
        DefaultMutableTreeNode b4 = new DefaultMutableTreeNode("M.Com");
        PG.add(b4);
        DefaultMutableTreeNode b5 = new DefaultMutableTreeNode("M.A");
        PG.add(b5);

        //Creating tree
        final JTree tree = new JTree(top);//it is accessed within inner class so it must be final

        int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
        int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
        JScrollPane jsp = new JScrollPane(tree,v,h);
        c.add(jsp,BorderLayout.CENTER );

        final JTextField text = new JTextField("",20);//it is accessed within inner class so it must be final
        c.add(text,BorderLayout.SOUTH);

        tree.addMouseListener( new MouseAdapter()
        {
            public void mouseClicked( MouseEvent me)
            {
                TreePath tp = tree.getPathForLocation(me.getX(),me.getY() );
               
                if( tp != null )
                    text.setText(tp.toString() );
                else
                    text.setText("");
            }
        });

        f.setSize(300,300);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Output:

No comments:

Post a Comment