在Java中實(shí)現(xiàn)樹形菜單可以使用樹形數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)菜單項(xiàng),然后通過(guò)遞歸的方式來(lái)構(gòu)建樹形菜單。
以下是一個(gè)簡(jiǎn)單的示例代碼實(shí)現(xiàn)樹形菜單:
import java.util.ArrayList;
import java.util.List;
class MenuItem {
private String name;
private List<MenuItem> children;
public MenuItem(String name) {
this.name = name;
this.children = new ArrayList<>();
}
public void addChild(MenuItem child) {
this.children.add(child);
}
public void display(int level) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < level; i++) {
sb.append("\t");
}
System.out.println(sb.toString() + name);
for (MenuItem child : children) {
child.display(level + 1);
}
}
}
public class Menu {
public static void main(String[] args) {
MenuItem root = new MenuItem("Root");
MenuItem menu1 = new MenuItem("Menu1");
MenuItem menu2 = new MenuItem("Menu2");
MenuItem menu3 = new MenuItem("Menu3");
MenuItem submenu1 = new MenuItem("Submenu1");
MenuItem submenu2 = new MenuItem("Submenu2");
menu1.addChild(submenu1);
menu1.addChild(submenu2);
root.addChild(menu1);
root.addChild(menu2);
root.addChild(menu3);
root.display(0);
}
}
在上面的示例中,我們定義了一個(gè)MenuItem
類來(lái)表示菜單項(xiàng),每個(gè)菜單項(xiàng)可以有多個(gè)子菜單項(xiàng)。然后在Menu
類中構(gòu)建了一個(gè)樹形菜單的示例,在main
方法中創(chuàng)建了根菜單項(xiàng)和子菜單項(xiàng),并調(diào)用display
方法展示樹形菜單。
通過(guò)遞歸的方式,我們可以很容易地構(gòu)建復(fù)雜的樹形菜單結(jié)構(gòu)。