GWT/JAVA—在对话框中调用AJAX

GWT/JAVA—在对话框中调用AJAX,gwt,Gwt,我是GWT新手,在对话框中显示AJAX调用的结果时遇到了一个问题 我在此处设置对话框、Vpanel和响应标签: VerticalPanel eventDetailWindow = new VerticalPanel(); final DialogBox dialogBox2 = new DialogBox(); dialogBox2.setText("Event Detail"); dialogBox2.setAnimationEnabled(true); fi

我是GWT新手,在对话框中显示AJAX调用的结果时遇到了一个问题

我在此处设置对话框、Vpanel和响应标签:

   VerticalPanel eventDetailWindow = new VerticalPanel();

   final DialogBox dialogBox2 = new DialogBox();
   dialogBox2.setText("Event Detail");
   dialogBox2.setAnimationEnabled(true);

   final HTML serverResponse3 = new HTML("<b> ok, this is working</b>");
   serverResponse3.addStyleName("detailView");

   eventDetailWindow.add(serverResponse3);
   eventDetailWindow.addStyleName("detailWindow");
   dialogBox2.setWidget(eventDetailWindow);
   RootPanel.get("detailWindow").add(eventDetailWindow);
但是,当它触发时,响应将显示在页面上,而不是对话框中,并且对话框为空。看起来它的设置与启动项目相同-工作正常


有人能帮我解决吗?

您正在将
eventDetailWindow
添加到页面上的某个内容,而我在对话框中没有看到对
.show()
的调用。你能发布完整的代码吗?

不要使用
RootPanel.get(“detailWindow”).add(eventDetailWindow);
如果只想添加到对话框2中

这样使用:

dialogBox2.setWidget(eventDetailWindow);
而且您不必添加
dialogBox2.show()因为
对话框2.center()该代码最初将显示对话框2

package com.ex.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;


public class Example implements EntryPoint {

public void onModuleLoad() {
        VerticalPanel eventDetailWindow = new VerticalPanel();

       final DialogBox dialogBox2 = new DialogBox();
       dialogBox2.setText("Event Detail");
       dialogBox2.setAnimationEnabled(true);

       final HTML serverResponse3 = new HTML("<b> ok, this is working</b>");
       serverResponse3.addStyleName("detailView");

       eventDetailWindow.add(serverResponse3);
       eventDetailWindow.addStyleName("detailWindow");
       dialogBox2.setWidget(eventDetailWindow);
       Button b= new Button("click");
       b.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            dialogBox2.setText("Remote Procedure Call");
            serverResponse3.setHTML("result");
            dialogBox2.center();
        }
    });

       RootPanel.get().add(b);

  }
}
package com.ex.client;
导入com.google.gwt.core.client.EntryPoint;
导入com.google.gwt.event.dom.client.ClickEvent;
导入com.google.gwt.event.dom.client.ClickHandler;
导入com.google.gwt.user.client.ui.Button;
导入com.google.gwt.user.client.ui.DialogBox;
导入com.google.gwt.user.client.ui.HTML;
导入com.google.gwt.user.client.ui.RootPanel;
导入com.google.gwt.user.client.ui.VerticalPanel;
公共类示例实现入口点{
moduleload()上的公共void{
VerticalPanel eventDetailWindow=新建VerticalPanel();
最终DialogBox dialogBox2=新建DialogBox();
dialogBox2.setText(“事件详细信息”);
dialogBox2.setAnimationEnabled(true);
final HTML serverResponse3=新的HTML(“好的,这正在工作”);
serverResponse3.addStyleName(“详细视图”);
添加(serverResponse3);
addStyleName(“detailWindow”);
dialogBox2.setWidget(eventDetailWindow);
按钮b=新按钮(“点击”);
b、 addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
dialogBox2.setText(“远程过程调用”);
setHTML(“结果”);
dialogBox2.center();
}
});
RootPanel.get().add(b);
}
}
package com.ex.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;


public class Example implements EntryPoint {

public void onModuleLoad() {
        VerticalPanel eventDetailWindow = new VerticalPanel();

       final DialogBox dialogBox2 = new DialogBox();
       dialogBox2.setText("Event Detail");
       dialogBox2.setAnimationEnabled(true);

       final HTML serverResponse3 = new HTML("<b> ok, this is working</b>");
       serverResponse3.addStyleName("detailView");

       eventDetailWindow.add(serverResponse3);
       eventDetailWindow.addStyleName("detailWindow");
       dialogBox2.setWidget(eventDetailWindow);
       Button b= new Button("click");
       b.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            dialogBox2.setText("Remote Procedure Call");
            serverResponse3.setHTML("result");
            dialogBox2.center();
        }
    });

       RootPanel.get().add(b);

  }
}