Add nodes to a tree with tree node selection listener : TreeSelectionListener « Swing Event « Java Tutorial






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);
    }
  }
}








15.38.TreeSelectionListener
15.38.1.How to Write a Tree Selection ListenerHow to Write a Tree Selection Listener
15.38.2.Add nodes to a tree with tree node selection listener
15.38.3.TreeSelectionEvent.getNewLeadSelectionPath().getLastPathComponent()
15.38.4.implements TreeSelectionListener
15.38.5.TreeSelectionListener and TreeSelectionEvent