请看getLastPathComponent方法的说明:
public Object getLastPathComponent()
    Returns the last component of this path. For a path returned by DefaultTreeModel this will return an instance of TreeNode.
Returns:
    the Object at the end of the path
See Also: 
    TreePath(Object[])返回的是Object,并不是返回的String。如果是用的DefaultTreeModel(一般来说都是用这个),返回的是TreeNode。

解决方案 »

  1.   

    是呀,关键是如何能唯一确定一个结点,让结点作为hashtable的key,即使改名字也不怕
      

  2.   

    tree中显示的内容是TreeNode.toString()TreeNode的实现类是DefaultMutableTreeNodeDefaultMutableTreeNode的toString()方法返回的是getUserObject().toString();DefaultMutableTreeNode.getUserObject()返回的才是你放到tree中的对象,如:String
      

  3.   

    可以自己写TreeNode,增加一个属性private String m_NodeId; 一个方法public String getNodeId() {return this.m_NodeId;}
    以后就可以这样比较了((YouTreeNode)JTree.getSelectionPath.getLastComponent()).getNodeId(),这样就算node的名字改了也不会影响的。
      

  4.   

    每个节点都有一个index
    用index做Hashtable的Key
      

  5.   

    index是这样的,同一个父节点的字节点依次是0 1 2 3 ...
    0
     0
      0
      1
     1
     2
    1
     0
      0
      1
     1
     2
    2
     0
     1
      

  6.   

    楼上的方法不正确,万一修改了jtree的接点结构,你的这些index就都不对了。
    强烈建议自己写node类继承treenode,这样比较灵活。
      

  7.   

    用TreeSelectionListener事件监听
    public void valueChanged(TreeSelectionEvent event)
    {
          TreePath path = event.getPath();
          System.println("Current selection is "+path.getLastPathComponent());
    }
      

  8.   

    DefaultMutableTreeNode作节点。
      显示的是其UserObject的toString()的值.
      可以定义一个类TreeNodeData:
      public class TreeNodeData {
         private String caption;
         private Object data;
         //定义构造函数
         public String toString()
         {
            return caption;
         }
         //定义读写caption、data的读写器
      }
      用TreeNodeData的实例对象作DefaultMutableTreeNode的UserObject.
      //得到当前节点:
      DefaultMutableTreeNode node=(DefaultMutableTreeNode )m_tree.getSelectionPath.getLastComponent();
      //得到当前节点携带的信息
      TreeNodeData data=(TreeNodeData)node.getUserObject();
      

  9.   

    利用TreePath可以得到TreeNode,而TreeNode对象在字符串改名后对象的引用是唯一的。否则重载TreeNode或TreePath在其中定义一个index,但保证index的唯一性需要下工夫了。
      

  10.   

    sun 的example里有的啊,,这里看到n+1次了:)