我正在使用 Netbeans 中的 GUI 构建器创建 JTree,我可以使用以下代码将节点和所有内容添加到树中
public static void listAllFiles(String directory, DefaultMutableTreeNode parent, Boolean recursive) {
File [] children = new File(directory).listFiles(); // list all the files in the directory
for (int i = 0; i < children.length; i++) { // loop through each
DefaultMutableTreeNode node = new DefaultMutableTreeNode(children[i].getName());
// only display the node if it isn't a folder, and if this is a recursive call
if (children[i].isDirectory() && recursive) {
parent.add(node); // add as a child node
listAllFiles(children[i].getPath(), node, recursive); // call again for the subdirectory
} else if (!children[i].isDirectory()){ // otherwise, if it isn't a directory
parent.add(node); // add it as a node and do nothing else
}
}
}
然后像这样称呼它
listAllFiles("C:\\test", defaultMutableTreeNode , true);
我可以将此代码添加到init()
JTree 的方法中,这样当它构建时,它将拥有 Test 文件夹中的所有文件夹和文件,这是非常棒的,但我真正想要做的是在我添加节点到 JTree 时单击一个按钮,但我不知道该怎么做!我可以将 添加listAllFiles("C:\\test", defaultMutableTreeNode , true);
到ActionPerformed
新按钮的 中,但随后找不到defaultMutableTreeNode
.
那么最好的方法是如何做到这一点呢?DefaultMutableTreeNode
当我单击按钮时会创建一个新的吗?