2011-09-26 106 views
1

我不斷收到一個錯誤提示:「這個窗口小部件的父窗口沒有實現HasWidgets,梳理了網頁(包括stackoverflow),但無法弄清楚是什麼問題。我知道它的一個問題,就是我將Download對象添加到VerticalPanel的'文本'的方式,但是,我不知道爲什麼拋出它,或者如何修復它。另外,當我運行該應用程序時,它首先成功並且。只引發錯誤的第二次,我試圖訪問下載頁面的任何幫助,將不勝感激如何添加複合窗口小部件:這個窗口小部件的父窗口沒有實現HasWidgets

public class SIXPAC implements EntryPoint, HasWidgets 
{ 
    private VerticalPanel mainPanel = new VerticalPanel() ; 
    private HorizontalPanel menu = new HorizontalPanel() ; 
    private VerticalPanel text = new VerticalPanel() ; 
    private SIXPACServiceAsync services = GWT.create(SIXPACService.class) ; 

    public void onModuleLoad() 
    { 
     header() ; 
     changePage("about.txt") ; 
     footer() ; 

     RootPanel.get("sixPac").add(mainPanel) ; 
     mainPanel.setWidth("100%"); 
    } 

    public void header() 
    { 
     menu.add(menu stuff...) ; 
     mainPanel.add(menu) ; 
     mainPanel.add(text) ; 
    } 

    public void footer() 
    { 
     mainPanel.add(footer stuff...) ; 
    } 

    public void changePage(String token) 
    { 
      if(token.equals("download.txt"))  // else its download page and need to set up the forms 
     { 
      text.clear() ; 
      try 
      { 
       add(new Download()) ; 
      } 
      catch(Exception e) 
      { 
       System.out.println(e) ; 
      } 
      text.setStyleName("contentbox") ; 
     } 
    } 

    public void add(Widget w) // tried basic implementation of the HasWidgets methods... 
    { 
     text.add(w) ; 
    } 

    public void clear() 
    { 

    } 

    public Iterator<Widget> iterator() { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    public boolean remove(Widget w) { 
     // TODO Auto-generated method stub 
     return false; 
    } 
} 

對於我基本解除一切爲了測試的緣故下載類:

package com.sixpac.website.client; 

import java.util.Iterator;

public class Download extends Composite 
{ 
    private static VerticalPanel verticalPanel = new VerticalPanel(); 

    public Download() 
    { 
     verticalPanel.setStyleName("contentbox"); 
     initWidget(verticalPanel); 
     verticalPanel.setWidth("100%"); 

     verticalPanel.add(new HTML("<h1>Download</h1>")) ; 

     HorizontalPanel horizontalPanel = new HorizontalPanel(); 
     horizontalPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); 
     horizontalPanel.setWidth("100%"); 
     verticalPanel.add(horizontalPanel) ; 

     System.out.println("creating new login") ; 
     Login login = new Login() ; 
     System.out.println("creating new register") ; 
     Register register = new Register() ; 

     horizontalPanel.add(login) ; 
     login.setSize("75%", "310px"); 
     horizontalPanel.setCellVerticalAlignment(login, HasVerticalAlignment.ALIGN_BOTTOM); 
     horizontalPanel.add(register) ; 
     register.setSize("90%", "257px"); 
     horizontalPanel.setCellVerticalAlignment(register, HasVerticalAlignment.ALIGN_BOTTOM); 
     setStyleName("gwt"); 
    } 

    public static void downloadOk() 
    { 
     verticalPanel.add(new HTML("<br/><br/>")) ; 
     verticalPanel.add(new HTML("<div class=\"contentbox downloadok\">\n\t\n<p>Thank you for downloading SIXPAC Version 0.5 (Beta).</p>\n<p>Please direct all technical questions and bug-reports to Snehit Prabhu (<a href=\"mailto:[email protected]\">[email protected]</a>)</p>\n\t\n<br />\n\t\n<a href=\"#\" class=\"downloadbutton\">Download SIXPAC</a>\n\n<br /><br />\n</div>\n\n\n</div><!--contentbox-->")) ; 
    } 
} 

堆棧跟蹤:

02:24:14.763 [ERROR] [sixpac] Uncaught exception escaped 

com.google.gwt.event.shared.UmbrellaException: One or more exceptions caught, see full set in UmbrellaException#getCauses 
    at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:129) 
    at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:129) 
    at com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116) 
    at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:177) 
    at com.google.gwt.user.client.ui.CustomButton.onBrowserEvent(CustomButton.java:698) 
    at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351) 
    at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1307) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java) 
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213) 
    at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107) 
    at com.google.gwt.dom.client.DOMImplStandard.dispatchEvent(DOMImplStandard.java) 
    at com.google.gwt.dom.client.Element$.dispatchEvent$(Element.java:142) 
    at com.google.gwt.user.client.ui.CustomButton.onClick(CustomButton.java:825) 
    at com.google.gwt.user.client.ui.PushButton.onClick(PushButton.java:190) 
    at com.google.gwt.user.client.ui.CustomButton.onBrowserEvent(CustomButton.java:656) 
    at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351) 
    at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1307) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java) 
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213) 
    at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292) 
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546) 
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363) 
    at java.lang.Thread.run(Thread.java:680) 
Caused by: java.lang.AssertionError: This UIObject's element is not set; you may be missing a call to either Composite.initWidget() or UIObject.setElement() 
    at com.google.gwt.user.client.ui.UIObject.getElement(UIObject.java:527) 
    at com.google.gwt.user.client.ui.ComplexPanel.add(ComplexPanel.java:94) 
    at com.google.gwt.user.client.ui.VerticalPanel.add(VerticalPanel.java:48) 
    at com.sixpac.website.client.SIXPAC.changePage(SIXPAC.java:140) 
    at com.sixpac.website.client.SIXPAC$3.onClick(SIXPAC.java:69) 
    at com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:54) 
    at com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:1) 
    at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1) 
    at com.google.web.bindery.event.shared.EventBus.dispatchEvent(EventBus.java:40) 
    at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193) 
    at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88) 
    at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:127) 
    at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:129) 
    at com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116) 
    at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:177) 
    at com.google.gwt.user.client.ui.CustomButton.onBrowserEvent(CustomButton.java:698) 
    at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351) 
    at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1307) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java) 
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213) 
    at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107) 
    at com.google.gwt.dom.client.DOMImplStandard.dispatchEvent(DOMImplStandard.java) 
    at com.google.gwt.dom.client.Element$.dispatchEvent$(Element.java:142) 
    at com.google.gwt.user.client.ui.CustomButton.onClick(CustomButton.java:825) 
    at com.google.gwt.user.client.ui.PushButton.onClick(PushButton.java:190) 
    at com.google.gwt.user.client.ui.CustomButton.onBrowserEvent(CustomButton.java:656) 
    at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351) 
    at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1307) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java) 
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213) 
    at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292) 
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546) 
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363) 
    at java.lang.Thread.run(Thread.java:680) 
+1

請問您可以發佈「下載」類的框架?如果您也發佈完整的堆棧跟蹤將會很有幫助。 – Behrang

+0

也發佈你正在獲得的異常的堆棧跟蹤 – awmross

+0

完成。添加。謝謝! –

回答

1

的問題是verticalPanel正在下載類的靜態。我認爲這會導致您的代碼在多次調用時導致引用錯誤。嘗試刪除靜態它應該工作。同樣在另一個說明中,您可以通過將其傳遞給文本實例來實現haswidget接口方法的其餘部分,就像執行add一樣。

+0

啊...謝謝你的工作! 因此,在下載對象中,我添加了兩個其他對象,即登錄和註冊,這兩個對象都是表單。一旦用戶填寫了他們的詳細信息並點擊登錄按鈕(下載對象)(或SIXPAC底稿),然後必須生成一個帶有鏈接的額外數據框,那麼如何將數據發送回來,以便用戶登錄並它可以向他展示鏈接? –

相關問題