java写一个树菜单结构的代码
时间: 2023-05-25 20:04:14 浏览: 77
以下是一个简单的Java代码示例,实现了一个基本的树形菜单结构。在此示例中,使用了递归方法来构建树形结构,同时使用了JTree组件来显示菜单。
```
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
public class TreeMenuExample extends JFrame {
JTree tree;
public TreeMenuExample() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("菜单");
// 添加顶层菜单
DefaultMutableTreeNode menu1 = new DefaultMutableTreeNode("菜单1");
root.add(menu1);
DefaultMutableTreeNode menu2 = new DefaultMutableTreeNode("菜单2");
root.add(menu2);
// 添加子菜单
DefaultMutableTreeNode submenu1 = new DefaultMutableTreeNode("子菜单1");
menu1.add(submenu1);
DefaultMutableTreeNode submenu2 = new DefaultMutableTreeNode("子菜单2");
menu1.add(submenu2);
DefaultMutableTreeNode submenu3 = new DefaultMutableTreeNode("子菜单3");
menu1.add(submenu3);
// 使用递归方法构建子菜单
DefaultMutableTreeNode submenu4 = new DefaultMutableTreeNode("子菜单4");
menu2.add(submenu4);
buildSubmenu(submenu4, 5); // 递归方法
tree = new JTree(root);
add(new JScrollPane(tree));
setSize(300, 400);
setVisible(true);
}
// 递归方法,构建子菜单
private void buildSubmenu(DefaultMutableTreeNode node, int depth) {
if (depth == 0) {
return; // 递归结束条件
}
DefaultMutableTreeNode submenu = new DefaultMutableTreeNode("子菜单" + depth);
node.add(submenu);
buildSubmenu(submenu, depth - 1); // 递归调用
}
public static void main(String[] args) {
new TreeMenuExample();
}
}
```
此示例中,创建了一个JTree组件,并将根节点设置为“菜单”,然后添加了三个顶层菜单“菜单1”、“菜单2”,以及一个顶层菜单“菜单2”下的子菜单。其中,“菜单1”下又包含了三个子菜单,而“菜单2”下则使用递归方法构建了5层的子菜单。
通过运行此程序,即可在窗口中看到一个简单的树形菜单结构。