Java程式:獲取JTree中任意節點的子節點數量


在這個程式中,我們將使用JTreeDefaultMutableTreeNodeJava中建立一個樹形結構來表示分層結構,例如網站。然後,我們將使用getChildCount()方法檢索並顯示樹中特定節點的子節點數量。本例重點關注非根節點,並列印每個節點的子節點數量。

假設我們想要獲取節點1(非根節點)的子節點數量:

node1.getChildCount()

在JTree中獲取任意節點子節點數量的步驟

以下是獲取JTree中任意節點子節點數量的步驟:

  • 首先,我們將匯入必要的類:來自javax.swingjavax.swing.tree包的JFrameJTreeDefaultMutableTreeNode
  • 建立一個JFrame來容納和顯示樹形結構。
  • 使用DefaultMutableTreeNode建立一個根節點,並將其命名為“網站”
  • 建立其他節點,例如“影片”“教程”“問答”“工具”,這些節點代表不同的部分。
  • 將這些節點作為子節點新增到根節點。
  • 對於這些節點中的每一個,新增更多子節點來表示更詳細的部分(例如,“PHP影片”、“Java”)。
  • 使用根節點建立一個JTree來顯示層次結構,並展開樹中的所有行,以便所有節點和子節點都可見。
  • 使用getChildCount()方法檢索並列印特定節點(例如,“影片”、“教程”)的子節點數量。
  • 將樹新增到框架中,設定其大小,並使其可見以顯示帶有子節點計數的樹形結構。

Java程式:獲取JTree中任意節點的子節點數量

以下是如何獲取任意節點子節點數量的示例:

package my;
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class SwingDemo {
   public static void main(String[] args) throws Exception {
      JFrame frame = new JFrame("Demo");
      DefaultMutableTreeNode node = new DefaultMutableTreeNode("Website");
      DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("Videos");
      DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Tutorials");
      DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("QA");
      DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Tools");
      node.add(node1);
      node.add(node2);
      node.add(node3);
      node.add(node4);
      DefaultMutableTreeNode one = new DefaultMutableTreeNode("PHP Videos");
      DefaultMutableTreeNode two = new DefaultMutableTreeNode("HTML5 Videos");
      DefaultMutableTreeNode three = new DefaultMutableTreeNode("Blockchain Videos");
      DefaultMutableTreeNode four = new DefaultMutableTreeNode("Java");
      DefaultMutableTreeNode five = new DefaultMutableTreeNode("DBMS");
      DefaultMutableTreeNode six = new DefaultMutableTreeNode("CSS");
      DefaultMutableTreeNode seven = new DefaultMutableTreeNode("MongoDB");
      DefaultMutableTreeNode eight = new DefaultMutableTreeNode("Python QA");
      DefaultMutableTreeNode nine = new DefaultMutableTreeNode("jQuery QA");
      DefaultMutableTreeNode ten = new DefaultMutableTreeNode("Photo Editing Tool");
      node1.add(one);
      node1.add(two);
      node1.add(three);
      node2.add(four);
      node2.add(five);
      node2.add(six);
      node2.add(seven);
      node3.add(eight);
      node3.add(nine);
      node4.add(ten);
      JTree tree = new JTree(node);
      for (int i = 0; i < tree.getRowCount(); i++) {
         tree.expandRow(i);
      }
      tree.putClientProperty("JTree.lineStyle", "Angled");
      System.out.println("Number of children of node1 (Videos) = " + node1.getChildCount());
      System.out.println("Number of children of node2 (Tutorials) = " + node2.getChildCount());
      System.out.println("Number of children of node3 (QA) = " + node3.getChildCount());
      System.out.println("Number of children of node4 (Tools) = " + node4.getChildCount());
      tree.setRowHeight(25);
      frame.add(tree);
      frame.setSize(600,450);
      frame.setVisible(true);
   }
}

輸出

控制檯將顯示每個節點的數量:

JTree如下所示

程式碼解釋

上述程式首先建立一個JFrame和一個名為“網站”的根節點,使用DefaultMutableTreeNode。在這個根節點下添加了幾個子節點,包括“影片”、“教程”、“問答”和“工具”。在這些節點下又添加了更多的子節點,例如“PHP影片”、“Java”和“Python問答”。JTree使用根節點建立,並使用getChildCount()方法列印“影片”、“教程”、“問答”和“工具”節點的子節點數量。最後,將樹新增到框架中,並顯示帶有樹形結構的GUI

更新於:2024年10月10日

694 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.