java实现节点循环菜单

来源:互联网 发布:压缩解压软件 mac版 编辑:程序博客网 时间:2024/05/12 18:33
package com.zhangle.arithmetic;


import java.util.Scanner;




public class ReTalkMenu {
private String data;
private ReTalkMenu father;
private ReTalkMenu left;
private ReTalkMenu right;
private ReTalkMenu child;
public ReTalkMenu(String x) {
data=x;
}
public void goShow(ReTalkMenu x) {
Scanner scanner = new Scanner(System.in);
int z=0;
for (;;) {
System.out.println("-----------");
ReTalkMenu temp=x.child;
while(x.child!=null){
System.out.println(z+"、"+x.child.data);
x.child=x.child.right;
z++;
}
System.out.println("u.请返回上一级");
System.out.println("m.返回主菜单");
System.out.println("e.退出整个系统");
System.out.println("-----------");
System.out.println("请输入选择:");
String string = scanner.nextLine();
if (string.equals("u")) {

}
if (string.equals("e")) {
System.exit(0);
}
if (string.equals("m")) {

}
int i = Integer.parseInt(string);
for (int j = 0; j < i+1; j++) {
x=temp.child;

}
if (i==0) {
x=temp;
}
goShow(x);

}


}
public void appendChild(String child) {
ReTalkMenu p=this;
while (p.child!=null) {
p=p.child;
}
p.child=new ReTalkMenu(child);
}
public void appendBrother(String brother) {
ReTalkMenu p=this;
while (p.left!=null) {
p=p.left;
}
p.left=new ReTalkMenu(brother);
}

public void appendLittle(String little) {
ReTalkMenu p=this;
while (p.right!=null) {
p=p.right;
}
p.right=new ReTalkMenu(little);
}

/**
* @param args
*/
public static void main(String[] args) {
// 创建菜单对象
ReTalkMenu rtm=new ReTalkMenu("水果");
rtm.appendChild("苹果");
rtm.child.appendLittle("香蕉");
rtm.child.right.appendLittle("梨子");
rtm.child.appendChild("红富士苹果");
rtm.child.child.appendLittle("国光苹果");
rtm.child.child.right.appendChild("富强1号");
rtm.child.child.right.child.appendLittle("富强2号");


System.out.println("水果甩卖");
rtm.goShow(rtm);//界面不应该是水果和苹果在同一级别
}


}
0 0