让我们说,我有一个jTree的代码
JTree jTree = new JTree() ;
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root") ;
jTree.setModel( new DefaultTreeModel(root));
DefaultMutableTreeNode firstNode = new DefaultMutableTreeNode("first node") ;
现在我想从firstNode变量不可用的地方向名为“first node”的节点(当前是一个叶子)中添加一个叶子。怎么做到呢?
Clearification: 好!我在类中有一个JFrame(扩展swing),jTree是这个类的私有成员。现在我将这个类对象(作为参数)传递给另一个应该填充jTree的类方法。但我无法对其他类方法中的 jTree 做任何事情。 (当然访问私有方法不是我的问题:)
答案 0 :(得分:5)
试试这个:
firstNode.add(new DefaultMutableTreeNode("leaf node"));
更新:根据您的评论,您必须具有要添加新叶的节点的引用。如果您正在响应树中的树选择事件,那么您可以通过以下方式获得引用:
DefaultMutableTreeNode firstNode = (DefaultMutableTreeNode)jTree.getSelectionPath().getLastPathComponent();
答案 1 :(得分:2)
注意,不会自动通知结构修改。使用默认模型,您只需使用:
treeModel.insertNodeInto(newChild, parent, index)
在你的情况下,我不明白什么是可用的,什么不是......