java实现节点循环菜单

本文介绍了一个使用Java实现的简单菜单驱动程序设计。该程序通过构建一个树形结构来表示不同层级的菜单项,并允许用户进行导航和选择。文章展示了如何添加子菜单、兄弟节点和进一步的子项。
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);//界面不应该是水果和苹果在同一级别
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值