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