添加新叶JTree的节点

问题描述:

比方说,我有这个代码的JTree,添加新叶JTree的节点

JTree jTree = new JTree() ; 
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("root") ; 
    jTree.setModel(new DefaultTreeModel(root)); 

    DefaultMutableTreeNode firstNode = new DefaultMutableTreeNode("first node") ; 

现在我想叶加入到从节点命名为“第一个节点”(这是目前叶) firstNode变量不可用的地方。如何做呢?

清除率: Okey!我在一个类中有一个JFrame(扩展swing),而jTree是这个类的私有成员。现在,我将这个类对象(作为参数)传递给另一个应该填充jTree的类方法。但是我无法用另一个类的方法做任何事情。 (当然访问私有方法是不是我的问题:)

试试这个:

firstNode.add(new DefaultMutableTreeNode("leaf node")); 

UPDATE:根据您的意见,您必须对要在其下添加新叶节点的引用。如果您回应树的树评选活动,那么你可以通过这个获得参考:

DefaultMutableTreeNode firstNode = (DefaultMutableTreeNode)jTree.getSelectionPath().getLastPathComponent(); 
+0

对不起我的错!我忘记说,firstNode变量不可用,我想在其中添加内容。 – Dewsworld

+0

@Dewsworld ...看看我的编辑是否有帮助。否则,你必须清除你的问题。 –

+0

亲爱的@Swaranga Sarma。作为一个新的java家伙,我很难澄清我的问题。我已经通过澄清来编辑我的问题。现在,你可以帮助:) – Dewsworld

小心,结构修饰不会自动通知。使用默认的模型,你可以使用:

treeModel.insertNodeInto(newChild, parent, index) 

在你的情况,我不明白什么是可用的,哪些不是......

+1

+1通知,只是一个小小的怪癖:节点修改(结构和内容都不会自动通知) – kleopatra

+0

@Adrien Clerc我已经添加了一些说明... – Dewsworld