Java SmartGWT:动态地将自定义小部件添加到VStack
我需要一些共享相同代码库的小部件,因此我引入了一个提供这些共享成员和方法的抽象类,并创建了一个添加额外功能的实现。但每次我想将其添加到VStack时,都会出现以下错误:Java SmartGWT:动态地将自定义小部件添加到VStack,java,gwt,smartgwt,Java,Gwt,Smartgwt,我需要一些共享相同代码库的小部件,因此我引入了一个提供这些共享成员和方法的抽象类,并创建了一个添加额外功能的实现。但每次我想将其添加到VStack时,都会出现以下错误: java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list 为了验证这是否是类层次结构的b/c,我在一个方法中创建了相同的b/c,但仍然收到相同的错误。下面的代码应该描述我想要
java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list
为了验证这是否是类层次结构的b/c,我在一个方法中创建了相同的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方法中的内容在一个单独的类中,并且我在这个测试类的构造函数中添加了一个新实例,因此不会抛出错误。仅当我希望通过单击按钮添加HStack时才会引发此错误
为什么我不能将此HStack添加到我的VStack中
更新
它是ListBox的b/c,它是一个GWT组件,没有SmartGWT组件。这是我错过的细节
有人能告诉我:为什么GWT小部件有一个现有的父级,而SmartGWT小部件没有?还是错误消息只是假的?问题是ListBox来自GWT,而不是SmartGWT。用合适的SmartGWT小部件替换它,它就像一个符咒一样工作。我发现,一般来说: 如果您想在基本的小部件显示之外寻找功能,就不能将GWT和SmartGWT混用。 我在试图隐藏/显示包含一些普通GWT小部件的
DynamicForm
或VLayout
时遇到了同样的异常情况。。。页面加载良好,但当我尝试添加一些隐藏/显示交互功能时遇到了问题