Как сохранить путь к узлу в JTree? - PullRequest
2 голосов
/ 24 марта 2012

Я работаю над проектом, в котором я хочу создать серию папок со структурой и именем, аналогичным названию JTree, которое я создал.

Для упрощения:

Если Aкорневой узел, а B и C - его дочерние элементы, в бэкэнде папка с именем «A» создается в расположении «C: \ Users \ Sami \ Desktop», затем B и C создаются в «C: \ Users».\ Sami \ Desktop \ A "

Я предполагаю, что если я пройду через каждый узел и получу свой отдельный TreePath, это облегчит задачу.

Есть ли другая альтернатива, на которую я могу пойти?Если нет, то как и где я могу сохранить путь к определенному узлу?

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 24 июля 2013

Следующий код - это SSCCE (краткий самостоятельный пример). Он проходит через все узлы дерева и получает путь в виде строки. Оттуда вы можете разобрать строки для вашей цели.

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);
      }
    }
}
...