1
下面的方法从字符串创建自定义数据树。如何从自定义树创建JPopupMenu
我正在研究一种生成带有许多子菜单的弹出式菜单的方法。基本上这些菜单动态给出,所以我有一个算法来处理使用下面的字符串创建子菜单。为了做到这一点,我通过使用分隔符分割将此字符串转换为Java自定义树。
public class MenuItem {
public String Name;
public Vector<MenuItem> Childeren;
public MenuItem() {
Name = "";
Childeren = new Vector<MenuItem>();
}
public MenuItem(String name) {
this();
Name = name;
}
public String toString() {
return Name + " " + Childeren ;
}
}
public static int createNode(StringTokenizer p_jTokenizer, MenuItem p_iParent) {
int nCount = 0;
while(p_jTokenizer.hasMoreTokens()) {
String strToken = p_jTokenizer.nextToken();
MenuItem iItem = new MenuItem();
if(strToken.endsWith("[")) {
strToken = strToken.substring(0, strToken.length() - 1);
nCount = createNode(p_jTokenizer, iItem);
}
while(strToken.endsWith("]")) {
nCount++;
strToken = strToken.substring(0, strToken.length() - 1);
}
iItem.Name = strToken;
p_iParent.Childeren.add(iItem);
while(nCount > 0) {
return --nCount;
}
}
return nCount;
}
我解析动态字符串值的
为例:
字符串str = “菜单1;菜单2 [; Menu2A; Menu2B [; Menu2B-A; Menu2B-B]];菜单3;”;
目前的方法创建一个树形像下面的结构:
Pop-up Menu
/ | \
Menu1 Menu2 Menu3
/ |
Menu2A Menu2B
| \
| \
Menu2B-A Menu2B-B
我坚持就如何基于此树子菜单创建JPopupMenu的。我想使用递归方式,但不知道要走哪条路。
从弹出窗口出来的多级菜单。听起来像是一个'无法使用的GUI'。 – 2012-02-23 22:15:48