0

我有一个DefaultMutableTreeNode("birds")它有 n 个孩子。现在我想将此节点添加到 2 个不同的父级DefaultMutableTreeNode("animals")DefaultMutableTreeNodes("animals2")

但是由于 DefaultMutableTreeNode 的 add 或 insert 方法首先从其父级中删除子级。DefaultMutableTreeNode ("birds")仅添加到一个父节点中。以后调用哪个。

有没有办法解决?

DefaultMutableTreeNode birds = new DefaultMutableTreeNode("birds");
DefaultMutableTreeNode animals = new DefaultMutableTreeNode("animals");
DefaultMutableTreeNode animals2 = new DefaultMutableTreeNode("animals2");
animals.add(birds);
animals2.add(birds);
4

2 回答 2

1

如果我正确理解您的问题,最好的方法是创建一个提供“鸟类层次结构”的方法:

private DefaultMutableTreeNode createBirdsNode() {
    DefaultMutableTreeNode birds = new DefaultMutableTreeNode("birds");
    // add another nodes to birds node.
    return birds;
}

稍后您可以使用此方法添加完整的层次结构。

animals.add(createBirdsNode());
animals2.add(createBirdsNode());
于 2017-06-21T15:11:37.290 回答
0

我终于得到了以下解决方案

JTree.DynamicUtilTreeNode.createChildren(DefaultMutableTreeNode parent, Object children) JTree myTree = new JTree(parent)

这将根节点作为输入,子对象可以是数组、向量或哈希表。我最初使用哈希表来存储树的所有子节点(鸟类),然后将它们添加到 2 个不同的根节点(动物和动物 2)。

于 2017-06-23T15:22:00.287 回答