没人理我吗?哪位大哥给看看

解决方案 »

  1.   

    因为你的class MouseHandle extends MouseAdapter
    {
    public void MouseClicked(MouseEvent e)
    这个类的方法就根本没有被调用,选中节点的名字就没有被设置。修改成下边这样就可以了
    /*
     * Created on 2003/09/18
     *
     * To change the template for this generated file go to
     * Window>Preferences>Java>Code Generation>Code and Comments
     */
    package com.tide.test.awt;import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    import javax.swing.event.*;public class TreeDemo5 extends JFrame implements TreeModelListener {
    JLabel label;
    String nodeName; public TreeDemo5() {
    super("treeDemo");
    Container content = this.getContentPane();
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("explor");
    DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("mydoc");
    DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("mycomp");
    DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("fiaviors");
    DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Readme");
    root.add(node1);
    root.add(node2);
    root.add(node3);
    root.add(node4); DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("company");
    node1.add(leafnode);
    leafnode = new DefaultMutableTreeNode("my file");
    node1.add(leafnode);
    leafnode = new DefaultMutableTreeNode("myfile");
    node1.add(leafnode); leafnode = new DefaultMutableTreeNode("c");
    node2.add(leafnode);
    leafnode = new DefaultMutableTreeNode("c");
    node2.add(leafnode);
    leafnode = new DefaultMutableTreeNode("e");
    node2.add(leafnode); DefaultMutableTreeNode node31 = new DefaultMutableTreeNode("web");
    node3.add(node31);
    leafnode = new DefaultMutableTreeNode("kimo");
    node31.add(leafnode);
    leafnode = new DefaultMutableTreeNode("message");
    node31.add(leafnode);
    leafnode = new DefaultMutableTreeNode("shop");
    node31.add(leafnode);
    JTree tree = new JTree(root);
    tree.addMouseListener(new MouseHandle(this));
    tree.setEditable(true);

    //tree.addMouseListener(); DefaultTreeModel treeModel = (DefaultTreeModel) tree.getModel();
    treeModel.addTreeModelListener(this); JScrollPane s = new JScrollPane();
    s.setViewportView(tree); label = new JLabel("change:");
    content.add(s, BorderLayout.CENTER);
    content.add(label, BorderLayout.SOUTH); pack();
    show();
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    } 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 + "] change:[" + node.toString() + "]"); }
    public void mouseClicked(MouseEvent e) {
    JTree tree = (JTree) e.getSource(); TreePath treepath = tree.getSelectionPath();
    DefaultMutableTreeNode treenode =
    (DefaultMutableTreeNode) treepath.getLastPathComponent();
    nodeName = treenode.toString(); }


    public void treeNodesInserted(TreeModelEvent e) {
    }
    public void treeNodesRemoved(TreeModelEvent e) {
    }
    public void treeStructureChanged(TreeModelEvent e) {
    }
    public static void main(String[] args) {
    new TreeDemo5();
    }}
    class MouseHandle extends MouseAdapter {
    TreeDemo5 adp = null;
    public MouseHandle(TreeDemo5 frame) {
    adp = frame;
    }
    public void mouseClicked(MouseEvent e) {
    adp.mouseClicked(e);
    }

    }