3

编辑 JTree 节点时,该节点的用户对象会丢失(设置为字符串)。如何获取原始用户对象?因为我想获取用户对象的 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 方法?

4

1 回答 1

4

实施TreeModel.valueForPathChanged()。或者如果您使用的是覆盖DefaultTreeModel.valueForPathChanged()DefaultTreeModel。这是设置新用户对象的地方,它使您有机会访问原始用户对象。

于 2012-07-19T06:09:52.480 回答