import java.awt.BorderLayout; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextField; 
import javax.swing.JTree; 
import javax.swing.ScrollPaneConstants; 
import javax.swing.tree.DefaultMutableTreeNode; 
import javax.swing.tree.TreePath; 
 
public class MainClass extends JPanel { 
 
  public MainClass() { 
    final JTree tree; 
    final JTextField jtf; 
 
    DefaultMutableTreeNode top = new DefaultMutableTreeNode("Options"); 
 
    DefaultMutableTreeNode a = new DefaultMutableTreeNode("A"); 
    top.add(a); 
    DefaultMutableTreeNode a1 = new DefaultMutableTreeNode("A1"); 
    a.add(a1); 
    DefaultMutableTreeNode a2 = new DefaultMutableTreeNode("A2"); 
    a.add(a2); 
 
    DefaultMutableTreeNode b = new DefaultMutableTreeNode("B"); 
    top.add(b); 
    DefaultMutableTreeNode b1 = new DefaultMutableTreeNode("B1"); 
    b.add(b1); 
    DefaultMutableTreeNode b2 = new DefaultMutableTreeNode("B2"); 
    b.add(b2); 
    DefaultMutableTreeNode b3 = new DefaultMutableTreeNode("B3"); 
    b.add(b3); 
 
    tree = new JTree(top); 
 
    JScrollPane jsp = new JScrollPane(tree); 
 
    add(jsp, BorderLayout.CENTER); 
 
    jtf = new JTextField("", 20); 
    add(jtf, BorderLayout.SOUTH); 
 
    tree.addMouseListener(new MouseAdapter() { 
      public void mouseClicked(MouseEvent me) { 
        TreePath tp = tree.getPathForLocation(me.getX(), me.getY()); 
        if (tp != null) 
          jtf.setText(tp.toString()); 
        else 
          jtf.setText(""); 
      } 
    }); 
 
  } 
 
  public static void main(String[] args) { 
    JFrame frame = new JFrame(); 
    frame.getContentPane().add(new MainClass()); 
 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(200, 200); 
    frame.setVisible(true); 
  } 
} 
 
            
       
  |