Mega Code Archive

 
Categories / Java Tutorial / Swing Event
 

Add nodes to a tree with tree node selection listener

import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeSelectionModel; public class MainClass extends JFrame {   private JTree tree1;   private JLabel showName = new JLabel();   public static void main(String[] args) {     new MainClass();   }   public MainClass() {     this.setSize(225, 325);     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     JPanel panel1 = new JPanel();     DefaultMutableTreeNode root, a, b, c, d, e;     root = new DefaultMutableTreeNode("A");     a = makeShow("B", root);     makeShow("C", a);     makeShow("D", a);     b = makeShow("E", root);     d = makeShow("F", b);     makeShow("G", d);     e = makeShow("H", b);     makeShow("I", e);     makeShow("J", b);     makeShow("K", b);     c = makeShow("L", root);     makeShow("M", c);     makeShow("N", c);     makeShow("O", c);     tree1 = new JTree(root);     tree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);     tree1.setVisibleRowCount(12);     tree1.addTreeSelectionListener(new TreeListener());     JScrollPane scroll = new JScrollPane(tree1);     panel1.add(scroll);     panel1.add(showName);     this.add(panel1);     this.setVisible(true);   }   private DefaultMutableTreeNode makeShow(String title, DefaultMutableTreeNode parent) {     DefaultMutableTreeNode show;     show = new DefaultMutableTreeNode(title);     parent.add(show);     return show;   }   private class TreeListener implements TreeSelectionListener {     public void valueChanged(TreeSelectionEvent e) {       Object o = tree1.getLastSelectedPathComponent();       DefaultMutableTreeNode show = (DefaultMutableTreeNode) o;       String title = (String) show.getUserObject();       showName.setText(title);     }   } }