如何展开JTree行以显示Java中的所有节点和子节点

How to expand JTree row to display all the nodes and child nodes in Java

要展开JTree行以显示所有节点和子节点,请使用Java中的expandRow()方法。 首先,创建一个节点-

1
DefaultMutableTreeNode node = new DefaultMutableTreeNode("Project");

现在,将节点添加到上面创建的节点中-

1
2
3
4
5
6
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("App");
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Website");
DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("WebApp");
node.add(node1);
node.add(node2);
node.add(node3);

现在,创建更多节点并将其设置为我们上面创建的节点的子节点-

1
2
3
4
5
6
7
8
9
10
11
12
DefaultMutableTreeNode one = new DefaultMutableTreeNode("Learning website");
DefaultMutableTreeNode two = new DefaultMutableTreeNode("Business website");
DefaultMutableTreeNode three = new DefaultMutableTreeNode("News publishing website");
DefaultMutableTreeNode four = new DefaultMutableTreeNode("Android app");
DefaultMutableTreeNode five = new DefaultMutableTreeNode("iOS app");
DefaultMutableTreeNode six = new DefaultMutableTreeNode("Editor WebApp");
node1.add(one);
node1.add(two);
node1.add(three);
node2.add(four);
node2.add(five);
node3.add(six);

现在,创建一个JTree并在其中设置根节点

--

1
JTree tree = new JTree(node);

使用expandRow()方法并在行数中循环-

1
2
3
for (int i = 0; i < tree.getRowCount(); i++) {
 tree.expandRow(i);
}

以下是扩展JTree行以显示所有节点和子节点的示例-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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("Project");
   DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("App");
   DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Website");
   DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("WebApp");
   node.add(node1);
   node.add(node2);
   node.add(node3);
   DefaultMutableTreeNode one = new DefaultMutableTreeNode("Learning website");
   DefaultMutableTreeNode two = new DefaultMutableTreeNode("Business website");
   DefaultMutableTreeNode three = new DefaultMutableTreeNode("News publishing website");
   DefaultMutableTreeNode four = new DefaultMutableTreeNode("Android app");
   DefaultMutableTreeNode five = new DefaultMutableTreeNode("iOS app");
   DefaultMutableTreeNode six = new DefaultMutableTreeNode("Editor WebApp");
   node1.add(one);
   node1.add(two);
   node1.add(three);
   node2.add(four);
   node2.add(five);
   node3.add(six);
   JTree tree = new JTree(node);
   for (int i = 0; i < tree.getRowCount(); i++) {
    tree.expandRow(i);
   }
   tree.putClientProperty("JTree.lineStyle","Angled");
   frame.add(tree);
   frame.setSize(550,400);
   frame.setVisible(true);
   frame.setLocationRelativeTo(null);
 }
}

输出量