我嘗試創建也使用Google Gears的Google Web Toolkit(GWT)應用程序,但每次嘗試刪除面板時都會收到異常和麪板呆在那裏。單擊按鈕後在GWT中刪除生成的面板
這裏是例外,我得到的摘錄(我只包含調用堆棧中的相關內容,剩下的只是下降到所包含的功能如下圖):
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)
我不知道問題是什麼,但我真的不喜歡在批准使用Gears後將按鈕留在那裏。
我在做什麼錯?或者用不同的方式提出任何建議,我可以這樣做,使其工作?
if(!gearsFactory.hasPermission()) {
HorizontalPanel rightPanel = new HorizontalPanel();
rightPanel.getElement().setId("gearsPrompt");
rightPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
rightPanel.setSpacing(0);
rightPanel.setHeight("28px");
InlineLabel enableGearsText = new InlineLabel("Enable Gears for off-line access");
enableGearsText.getElement().setId("gearsText");
enableGearsText.addStyleName("titleElement");
rightPanel.add(enableGearsText);
final Button gearsButton = new Button("Use Gears");
gearsButton.getElement().setId("gearsButton");
gearsButton.addStyleName("titleElement");
gearsButton.setHeight("24px");
gearsButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Factory gearsFactory = Factory.getInstance();
if(gearsFactory != null) {
if(gearsFactory.getPermission()) {
RootPanel gearsPrompt = RootPanel.get("gearsPrompt");
gearsPrompt.removeFromParent();
}
}
}
});
rightPanel.add(gearsButton);
RootPanel titleBarRight = RootPanel.get("titleBarRight");
titleBarRight.add(rightPanel);
}
不幸的是不起作用。 removeFromParent()調用位於匿名ClickHandler對象內,因此與rightPanel不在同一範圍內。 感謝您的想法,但! – Miquella 2009-06-08 02:07:47