展開和折疊樹節點是一種常見的用戶交互方式,在 Java 中也可以輕松實現。下面我們來介紹一下如何在 Java 中實現展開和折疊樹節點。
// 定義節點類 class Node { public boolean expanded; // 標記當前節點是否展開 public String name; public Listchildren = new ArrayList (); public Node(String name) { this.name = name; this.expanded = false; } // 添加子節點 public void addChild(Node node) { this.children.add(node); } // 展開或折疊節點 public void expandOrCollapse() { this.expanded = !this.expanded; } // 判斷當前節點是否為葉子節點 public boolean isLeaf() { return this.children.size() == 0; } } // 定義樹結構類 class Tree { public Node root; public Tree(Node root) { this.root = root; } // 遍歷樹結構,打印每個節點的名稱 public void traverse(Node node, String indent) { System.out.println(indent + node.name); if (!node.isLeaf() && node.expanded) { for (Node child : node.children) { traverse(child, indent + " "); } } } }
在上面的代碼中,我們定義了一個節點類 Node 和一個樹結構類 Tree。Node 類中定義了一些基本的節點操作,比如添加子節點、展開或折疊節點等。Node 類還有一個 isLeaf 方法,用于判斷當前節點是否為葉子節點。
Tree 類則定義了一個根節點 root,以及一個 traverse 方法用于遍歷整個樹結構并打印每個節點的名稱。在 traverse 方法中,我們使用了遞歸方式來遍歷整個樹結構,同時根據每個節點的 expanded 屬性來判斷是否展開當前節點。
在實際應用中,我們可以根據具體需要對 Node 類和 Tree 類進行擴展,從而實現更豐富的功能。