Mega Code Archive

 
Categories / Java / Swing JFC
 

Implements TreeSelectionListener to create your own listener

/* Swing, Second Edition by Matthew Robinson, Pavel Vorobiev */ import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; public class Tree1    extends JFrame  {   protected JTree  m_tree = null;   protected DefaultTreeModel m_model = null;   protected JTextField m_display;   public Tree1()   {     super("Sample Tree [OID]");     setSize(400, 300);         Object[] nodes = new Object[5];     DefaultMutableTreeNode top = new DefaultMutableTreeNode(       new OidNode(1, "ISO"));     DefaultMutableTreeNode parent = top;     nodes[0] = top;     DefaultMutableTreeNode node = new DefaultMutableTreeNode(       new OidNode(0, "standard"));     parent.add(node);     node = new DefaultMutableTreeNode(new OidNode(2,        "member-body"));     parent.add(node);     node = new DefaultMutableTreeNode(new OidNode(3, "org"));     parent.add(node);     parent = node;     nodes[1] = parent;     node = new DefaultMutableTreeNode(new OidNode(6, "dod"));     parent.add(node);     parent = node;     nodes[2] = parent;     node = new DefaultMutableTreeNode(new OidNode(1,        "internet"));     parent.add(node);     parent = node;     nodes[3] = parent;     node = new DefaultMutableTreeNode(new OidNode(1,        "directory"));     parent.add(node);     node = new DefaultMutableTreeNode(new OidNode(2,        "mgmt"));     parent.add(node);     nodes[4] = node;     node.add(new DefaultMutableTreeNode(new OidNode(1,        "mib-2")));     node = new DefaultMutableTreeNode(new OidNode(3,        "experimental"));     parent.add(node);     node = new DefaultMutableTreeNode(new OidNode(4,        "private"));     node.add(new DefaultMutableTreeNode(new OidNode(1,        "enterprises")));     parent.add(node);     node = new DefaultMutableTreeNode(new OidNode(5,        "security"));     parent.add(node);     node = new DefaultMutableTreeNode(new OidNode(6,        "snmpV2"));     parent.add(node);     node = new DefaultMutableTreeNode(new OidNode(7,        "mail"));     parent.add(node);     m_model = new DefaultTreeModel(top);     m_tree = new JTree(m_model);     DefaultTreeCellRenderer renderer = new        DefaultTreeCellRenderer();     renderer.setOpenIcon(new ImageIcon("opened.gif"));     renderer.setClosedIcon(new ImageIcon("closed.gif"));     renderer.setLeafIcon(new ImageIcon("leaf.gif"));     m_tree.setCellRenderer(renderer);     m_tree.setShowsRootHandles(true);      m_tree.setEditable(false);     TreePath path = new TreePath(nodes);     m_tree.setSelectionPath(path);     m_tree.addTreeSelectionListener(new        OidSelectionListener());     JScrollPane s = new JScrollPane();     s.getViewport().add(m_tree);     getContentPane().add(s, BorderLayout.CENTER);     m_display = new JTextField();     m_display.setEditable(false);     getContentPane().add(m_display, BorderLayout.SOUTH);     WindowListener wndCloser = new WindowAdapter()     {       public void windowClosing(WindowEvent e)        {         System.exit(0);       }     };     addWindowListener(wndCloser);          setVisible(true);   }   public static void main(String argv[])    {     new Tree1();   }   class OidSelectionListener      implements TreeSelectionListener    {     public void valueChanged(TreeSelectionEvent e)     {       TreePath path = e.getPath();       Object[] nodes = path.getPath();       String oid = "";       for (int k=0; k<nodes.length; k++)       {         DefaultMutableTreeNode node =            (DefaultMutableTreeNode)nodes[k];         OidNode nd = (OidNode)node.getUserObject();         oid += "."+nd.getId();       }       m_display.setText(oid);     }   } } class OidNode {   protected int    m_id;   protected String m_name;   public OidNode(int id, String name)   {     m_id = id;     m_name = name;   }   public int getId()    {      return m_id;   }   public String getName()    {      return m_name;   }   public String toString()    {      return m_name;   } }