给你一个例子,应该对你有帮助。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;public class TreeDemo6 implements ActionListener,TreeModelListener
{
    JLabel label = null;
    JTree tree = null;
    DefaultTreeModel treeModel = null;
    String nodeName = null; //原有节点名称 
    
    public TreeDemo6()
    {
        JFrame f = new JFrame("TreeDemo");
        Container contentPane = f.getContentPane();
        
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("资源管理器");
        
        tree = new JTree(root);
        tree.setEditable(true);
        tree.addMouseListener(new MouseHandle());
        treeModel = (DefaultTreeModel)tree.getModel();
        treeModel.addTreeModelListener(this);
        
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(tree);
        
        JPanel panel = new JPanel();
        JButton b = new JButton("新增节点");
        b.addActionListener(this);
        panel.add(b);
                
        label = new JLabel("Action");
        contentPane.add(panel,BorderLayout.NORTH);
        contentPane.add(scrollPane,BorderLayout.CENTER);
        contentPane.add(label,BorderLayout.SOUTH);
        f.pack();
        f.setVisible(true);
        
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });    }
    
    public void actionPerformed(ActionEvent ae)
    {
        if (ae.getActionCommand().equals("新增节点"))
        {
            DefaultMutableTreeNode parentNode = null;
            
            DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新节点");
            newNode.setAllowsChildren(true);
            TreePath parentPath = tree.getSelectionPath();            parentNode = (DefaultMutableTreeNode)
                             (parentPath.getLastPathComponent());            treeModel.insertNodeInto(newNode,parentNode,parentNode.getChildCount());
            tree.scrollPathToVisible(new TreePath(newNode.getPath()));
            
            label.setText("新增节点成功");
        }
        
    }
    
    public void treeNodesChanged(TreeModelEvent e) {
        
        TreePath treePath = e.getTreePath();
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)treePath.getLastPathComponent();
        try {
            int[] index = e.getChildIndices();
            node = (DefaultMutableTreeNode)node.getChildAt(index[0]);
        } catch (NullPointerException exc) {}
        label.setText(nodeName+" 更改数据为: "+(String)node.getUserObject());
    }
    public void treeNodesInserted(TreeModelEvent e) {
        System.out.println("new node inserted");
    }
//    public void treeNodesRemoved(TreeModelEvent e) {
        System.out.println("node deleted");
 //   }
    public void treeStructureChanged(TreeModelEvent e) {
        System.out.println("structrue changed");
    }    public static void main(String args[]) {
    
        new TreeDemo6();
    }
    
    class MouseHandle extends MouseAdapter
    {
        public void mousePressed(MouseEvent e) 
        {
            try{
                JTree tree = (JTree)e.getSource();
            
                int rowLocation = tree.getRowForLocation(e.getX(), e.getY());
                TreePath treepath = tree.getPathForRow(rowLocation);
                TreeNode treenode = (TreeNode) treepath.getLastPathComponent(); 
            
                nodeName = treenode.toString();
            }catch(NullPointerException ne){}
        }
    }
}