我需要一些小部件共享相同的代碼庫,因此我引入了一個抽象類,提供了這些共享成員和方法,並創建了一個實現,它增加了額外的功能。但每次我想這個添加到VStack時候,我得到了以下錯誤:SmartGWT:動態添加自定義小部件到VStack
java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list
爲了驗證這是否是B/C類層次的我創建的方法一樣,但我仍然收到相同的錯誤。下面的代碼應該描述我想實現的目標。
public class Test extends VStack {
// constructor that adds button and a clickhandler for the button
// that will call addComplex()
public void addComplex() {
HStack stack = new HStack();
stack.setHeight("22px");
stack.addMember(new IButton("remove"));
stack.addMember(new ListBox());
DynamicForm form = new DynamicForm();
form.setFields(new TextItem());
stack.addMember(form);
addMember(stack);
}
}
時,我只是叫
addMember(new Label(""));
我沒有得到任何錯誤。此外,考慮到方法addComplex中的東西在一個單獨的類中,並且我在此Test-class的構造函數中添加了一個新實例,不會引發任何錯誤。錯誤只是當我想通過按鈕點擊添加HStack時拋出
爲什麼我不能添加這個HStack到我的VStack?
更新
它是二/三列表框,這是一個GWT成分,沒有SmartGWT的組分。這是我錯過的細節。
有人可以告訴我:爲什麼GWT小部件是現有的父項,而SmartGWT小部件不?或者是錯誤消息只是假的?