本实例是实现菜单的多级选择:
实现代码如下:
package menuTest;
import java.util.List;
import java.util.Scanner;
import generalTree.GeneralTree;
public class controlMenu {
GeneralTree tree = new GeneralTree();
public void add(String parent,String child){
tree.addNode(parent,child);
}
public String go(String x){
Scanner scan = new Scanner(System.in);
String x2 = x;
for(;;){
List t = tree.getChild(x);
if(t.isEmpty()) return x;
System.out.println("----------");
for(int i=0; i
System.out.println(i+"."+t.get(i));
}
System.out.println("u.返回上一级菜单");
System.out.println("f.返回第一级菜单");
System.out.println("----------");
System.out.print("请输入:");
String s = scan.nextLine();
if(s.equals("u")){
String x1 = tree.getParent(x);
if(x1 != null) x=x1;
continue;
}
if(s.equals("f")){
x = "水果";
continue;
}
//continue;
try{
String x1 = t.get(Integer.parseInt(s));
x = x1;
}catch(Exception e){
System.out.println("请从新输入!!!");
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
controlMenu fruit = new controlMenu();
fruit.add("水果","苹果");
fruit.add("水果","香蕉");
fruit.add("水果","葡萄");
fruit.add("苹果","红富士");
fruit.add("苹果","国光苹果");
fruit.add("国光苹果","富强1号");
fruit.add("国光苹果","富强2号");
String t = fruit.go("水果");
System.out.println("选择:"+t);
}
}
其中的GeneralTree类,见前一篇文章里面。