请看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。
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。
以后就可以这样比较了((YouTreeNode)JTree.getSelectionPath.getLastComponent()).getNodeId(),这样就算node的名字改了也不会影响的。
用index做Hashtable的Key
0
0
0
1
1
2
1
0
0
1
1
2
2
0
1
强烈建议自己写node类继承treenode,这样比较灵活。
public void valueChanged(TreeSelectionEvent event)
{
TreePath path = event.getPath();
System.println("Current selection is "+path.getLastPathComponent());
}
显示的是其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();