0
的節點我在這個格式的樹形結構:堆棧溢出錯誤而刪除樹
Index1
|
--Key1
--Value1
Index2
|
--Key2
--Value2
Key
和Value
對象是Index
對象的孩子,有樹無索引對象。
我維護數組列表爲Index
對象(indexList
),Key
對象(keyList
)和Value
對象(valueList
)。
viewer
是TreeViewer
的一個對象。
我的目標是消除索引對象以及負責這次行動的代號爲:
String indexName = text.getText();
for(int i =0; i< model.indexList.size(); i++)
{
if(model.indexList.get(i).getName().equals(indexName))
{
Index temp = model.indexList.get(i);
int noOfKeys = temp.keyList.size();
int noOfValues = temp.valueList.size();
for(int j=0; j<noOfKeys ; j++)
{
temp.keyList.remove(j);
temp.valueList.remove(j);
}
model.indexList.remove(i);
break;
}
}
viewer.refresh();
當我執行刪除操作的節點被刪除,但與堆棧溢出錯誤。
請讓我知道我錯了什麼地方。
我同意你對此的看法,並且我相應地修改了代碼,但仍然面臨着同樣的堆棧溢出錯誤。 – kk331317 2012-01-16 17:01:56
我的getChildren()類的方法實現ITreeContentProvider看起來是這樣的: 公共對象[]的getChildren(對象parentElement) \t \t {\t \t \t \t如果(parentElement的instanceof指數) \t \t \t { \t \t \t \t Index ind1 =(Index)parentElement; \t \t \t \t return ind1.getSetOfKeyValue(); \t \t \t} \t \t返回模型。getSetOfChilds(); \t \t – kk331317 2012-01-16 17:31:08
}堆棧跟蹤 在org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2362) 在org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1536) 在org.eclipse.swt.widgets.Control.windowProc(Control.java:4251) 在org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5844) 在org.eclipse.swt.widgets.Display .windowProc(Display.java:4873) 在org.eclipse.swt.internal.win32.OS.SendMessageW(本機方法) 在org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:3156) 在org.eclipse.swt.widgets.Tree.getItems(Tree.java:3249) 在org.eclipse.jface.viewers.TreeViewer.getChild仁(TreeViewer.java:171) – kk331317 2012-01-16 17:35:21