+-
java-JTree节点重命名保留用户对象
编辑JTree节点时,该节点的用户对象丢失(设置为String).如何获得原始用户对象?因为我想获取用户对象的ID,以便更新数据库中的已编辑名称.

我正在使用TreeModelListener的treeNodesChanged方法,如下所示.

public void treeNodesChanged(TreeModelEvent e) {
    DefaultMutableTreeNode node;
    node = (DefaultMutableTreeNode) (e.getTreePath().getLastPathComponent());
    try {
        int index = e.getChildIndices()[0];
        node = (DefaultMutableTreeNode) (node.getChildAt(index));
    } catch (NullPointerException ex) {}        
    System.out.println(node.getUserObject().getClass()); // my user object gone
}

那么,有什么方法可以在编辑之前获取原始用户对象?是否有要重写的DefaultTreeCellRenderer或DefaultTreeCellEditor方法?

最佳答案
实现 TreeModel.valueForPathChanged().如果您使用的是DefaultTreeModel,请重写 DefaultTreeModel.valueForPathChanged().这是设置新用户对象的地方,它使您有机会进入原始用户对象.
点击查看更多相关文章

转载注明原文:java-JTree节点重命名保留用户对象 - 乐贴网