在控制台中创建多级菜单
在Java中,我们可以通过使用递归的方式来创建多级菜单,使用户可以在控制台中进行交互式操作。下面将介绍如何实现这一功能。
1. 创建菜单项类
首先,我们需要创建一个菜单项类(MenuItem),用于表示菜单中的每一个选项。该类包含一个名称和一个子菜单列表。
public class MenuItem {
private String name;
private List<MenuItem> subMenuItems;
public MenuItem(String name) {
this.name = name;
this.subMenuItems = new ArrayList<>();
}
public String getName() {
return name;
}
public List<MenuItem> getSubMenuItems() {
return subMenuItems;
}
public void addSubMenu(MenuItem menuItem) {
subMenuItems.add(menuItem);
}
}
2. 创建菜单管理类
接下来,我们创建一个菜单管理类(MenuManager),用于管理整个菜单系统。该类包含一个根菜单项和一个当前菜单项。
import java.util.Scanner;
public class MenuManager {
private MenuItem rootMenu;
private MenuItem currentMenu;
private Scanner scanner;
public MenuManager(MenuItem rootMenu) {
this.rootMenu = rootMenu;
this.currentMenu = rootMenu;
this.scanner = new Scanner(System.in);
}
public void displayMenu() {
System.out.println("当前菜单:" + currentMenu.getName());
System.out.println("请选择操作:");
for (int i = 0; i < currentMenu.getSubMenuItems().size(); i++) {
System.out.println((i + 1) + ". " + currentMenu.getSubMenuItems().get(i).getName());
}
System.out.println("0. 返回上级菜单");
}
public void run() {
while (true) {
displayMenu();
int choice = scanner.nextInt();
if (choice == 0) {
if (currentMenu != rootMenu) {
currentMenu = rootMenu;
} else {
System.out.println("已经是根菜单,无法返回上级菜单!");
}
} else if (choice > 0 && choice <= currentMenu.getSubMenuItems().size()) {
currentMenu = currentMenu.getSubMenuItems().get(choice - 1);
} else {
System.out.println("无效选项,请重新选择!");
}
}
}
public static void main(String[] args) {
MenuItem rootMenu = new MenuItem("根菜单");
MenuItem subMenu1 = new MenuItem("子菜单1");
MenuItem subMenu2 = new MenuItem("子菜单2");
rootMenu.addSubMenu(subMenu1);
rootMenu.addSubMenu(subMenu2);
MenuManager menuManager = new MenuManager(rootMenu);
menuManager.run();
}
}
现在,我们已经完成了一个简单的多级菜单系统。用户可以根据提示在控制台中选择菜单项,进入子菜单或返回上级菜单。
状态图
stateDiagram
[*] --> 根菜单
根菜单 --> 子菜单1
根菜单 --> 子菜单2
子菜单1 --> 根菜单
子菜单2 --> 根菜单
旅行图
journey
title 多级菜单操作流程
[*] --> 输入选项: 选择菜单项
输入选项 --> 选择子菜单: 选项不为0
选择子菜单 --> 返回上级菜单: 选项为0
返回上级菜单 --> 输入选项: 返回上级菜单
通过以上代码示例和状态图、旅行图,我们可以清晰地了解如何在控制台中创建多级菜单。这种方式可以方便用户进行交互式操作,提高用户体验。希望本文对您有所帮助。