簡體   English   中英

將相同的DefaultMutableTreeNode添加到2個不同的DefaultMutableTreeNode

[英]Add same DefaultMutableTreeNode to 2 different DefaultMutableTreeNode

我有一個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);

如果我正確理解您的問題,最好的方法是創建一種提供“鳥的層次結構”的方法:

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

之后,您可以使用此方法添加完整的層次結構。

animals.add(createBirdsNode());
animals2.add(createBirdsNode());

我最終得到以下解決方案

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

這需要一個根節點作為輸入,子對象可以是數組,向量或哈希表。 我最初使用哈希表來存儲樹的所有子節點(鳥),然后將它們添加到2個不同的根節點(動物和動物2)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM