JTree里修改一个节点名字,调用下面的响应函数,在这个函数里只能得到更改后的节点名字,如何才能得到被更改节点更改之前的名字(不知道之前的节点名字就没办法更新数据库)程序如下:
public void treeNodesChanged(TreeModelEvent e) {
               //System.out.println("treeNodesChanged "+e.toString());
TreePath treepath=e.getTreePath();
DefaultMutableTreeNode node=(DefaultMutableTreeNode)treepath.getLastPathComponent();
try{
int []index=e.getChildIndices();
node=(DefaultMutableTreeNode)node.getChildAt(index[0]);
}catch(NullPointerException ex){}
String newname=(String)node.getUserObject();//获得更改后的节点名字
System.out.println("update to "+newname);
}

解决方案 »

  1.   

    已经记不清多少人了在这样的问题上犯糊涂。
    无论更新什么数据,实际都是去更新model里面的 数据。
    在你更新model的时候先把原来数据取得并缓存一份。还是说你找不到什么时候更新的model?
      

  2.   

    TreePath treepath=e.getTreePath();
    DefaultMutableTreeNode node=(DefaultMutableTreeNode)treepath.getLastPathComponent(); 
    System.out.println((String)node.getUserObject());
      

  3.   


    tree.addTreeSelectionListener(new TreeSelectionListener() {
    public void valueChanged(TreeSelectionEvent e){
    TreePath treepath = e.getPath();
    DefaultMutableTreeNode node=(DefaultMutableTreeNode)treepath.getLastPathComponent();
    System.out.println((String)node.getUserObject());
    }
    });