DefaultTreeModel: addTreeModelListener(TreeModelListener l) : DefaultTreeModel « javax.swing.tree « Java by API






DefaultTreeModel: addTreeModelListener(TreeModelListener l)

 

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

class MyTreeModelListener implements TreeModelListener {
  public void treeNodesChanged(TreeModelEvent e) {
    DefaultMutableTreeNode node;
    node = (DefaultMutableTreeNode) (e.getTreePath().getLastPathComponent());
    try {
      int index = e.getChildIndices()[0];
      node = (DefaultMutableTreeNode) (node.getChildAt(index));
    } catch (NullPointerException exc) {
    }
    System.out.println("New value: " + node.getUserObject());
  }

  public void treeNodesInserted(TreeModelEvent e) {
    System.out.println(e);
  }

  public void treeNodesRemoved(TreeModelEvent e) {
    System.out.println(e);
  }

  public void treeStructureChanged(TreeModelEvent e) {
    System.out.println(e);
  }
}

public class Main {
  public static void main(String args[]) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
    JTree tree = new JTree(root);

    DefaultTreeModel treeModel = new DefaultTreeModel(root);
    treeModel.addTreeModelListener(new MyTreeModelListener());

    treeModel.insertNodeInto(new DefaultMutableTreeNode("A") ,root,0);

    root.add(new DefaultMutableTreeNode("B"));
    root.add(new DefaultMutableTreeNode("C"));
    
    JScrollPane scrollPane = new JScrollPane(tree);
    frame.add(scrollPane, BorderLayout.CENTER);
    frame.setSize(300, 150);
    frame.setVisible(true);

  }
}

   
  








Related examples in the same category

1.DefaultTreeModel: insertNodeInto(MutableTreeNode n, MutableTreeNode p, int i)
2.DefaultTreeModel: reload()
3.extends DefaultTreeModel (Sortable Tree Model)