如何在JTree中存储节点的路径?

时间:2012-03-24 08:09:11

标签: java swing jtree

我正在开发一个项目,我想创建一系列文件夹,其结构和名称与我创建的JTree类似。

简化:

如果A是根节点而B和C是其子节点,则在后端,在“C:\ Users \ Sami \ Desktop”位置创建名为“A”的文件夹,然后创建B和C在“C:\ Users \ Sami \ Desktop \ A”

我猜测如果我遍历每个节点并获得他们各自的TreePath,它会让事情变得更容易。

我还有其他选择吗?如果不是我如何以及在何处存储特定节点的路径?

请帮助。

1 个答案:

答案 0 :(得分:0)

以下代码是SSCCE(简短的自包含正确示例)。它遍历树中的所有节点,并以String形式获取路径。从那里你可以解析字符串到你的目的。

import java.util.Enumeration;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;

public class StoreTreePathExample {
    public static void main(String[] args){     
    JTree tree = new JTree();
    Enumeration en = ((DefaultMutableTreeNode)tree.getModel().getRoot()).preorderEnumeration();
      while(en.hasMoreElements()){
      TreePath path = new TreePath( ((DefaultMutableTreeNode)en.nextElement()).getPath() );
      String text = path.toString();
      System.out.println(text);
      }
    }
}