我正在基于HTML模型制作GWT应用程序。样机具有大约4或5个使用div和CSS制作的不同布局。现在,我有一个HTML页面,其中仅包含布局的基本元素(页眉,正文,页脚)。其他布局是相同的事物,主体具有不同的布局(即两列,三列)。我尝试使用以下代码在基本模板中添加额外的标记:

RootPanel.get("main_area").add(html);

其中main_area是我的正文div的ID,而html是带有列布局的其他div的HTML对象。

这可以正常工作,但是当我尝试向div中添加一些文本(或其他内容)时,我添加了:
RootPanel.get("left_column").add(new Label("test"));

我收到以下错误:
java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list
    at com.google.gwt.user.client.ui.RootPanel.detachOnWindowClose(RootPanel.java:122)
    at com.google.gwt.user.client.ui.RootPanel.get(RootPanel.java:197)

我以为我要彻底解决这个问题,但是我不知道这样做的正确方法。

最佳答案

您可能需要研究HTMLPanel。

IE。

HTMLPanel hpanel = new HTMLPanel("<div id='morehtml'></div>");
hpanel.add(new Label("Hello, I am inside morehtml"), "morehtml");

RootPanel.get("main_area").add(hpanel);

09-26 12:36