在两个屏幕GWT之间加载指示器

时间:2013-07-24 12:12:44

标签: gwt

我在GWT的主页上有一个按钮。单击此按钮时,将使用新的GWT元素更新屏幕,而不发送RPC调用。但是在这两个屏幕之间,有很长一段时间。所以我想为它制作一个加载指示器(如动画gif)。

我该怎么做?

2 个答案:

答案 0 :(得分:10)

GWT类PopupPanel有一个可选的“玻璃面板”,可以阻止与下面页面的交互。

final PopupPanel popup = new PopupPanel(false, true); // Create a modal dialog box that will not auto-hide
popup.add(new Label("Please wait"));
popup.setGlassEnabled(true); // Enable the glass panel
popup.center(); // Center the popup and make it visible

答案 1 :(得分:2)

嗨,我实施了他。我在加载另一个屏幕之前附加了一个加载图像。下面是代码:

public class Utility {

private static LoadingDlg dlg=new LoadingDlg(false, true);

public static void showLoading(){
    if(count <= 0){


        dlg.center();
        count = 1;
    }
    else
    count++;

}
public static void hideLoading(){
    if(count <= 1){
        dlg.hide();     
        count = 0;
    }
    else{
    count--;
    }
}

}






public LoadingDlg(boolean autoHide, boolean modal) {
    super(autoHide, modal);
    this.setGlassEnabled(true);
    this.setTitle("Press Esc Key to Hide.");
    this.setGlassStyleName("loadingstyle");     
    FlowPanel hp=new FlowPanel();
    hp.setStyleName("loadingImg");
    this.getElement().getStyle().setZIndex(500);
    this.setWidget(hp);

}

同样的Css:

.loadingstyle{
display: block !important;   
visibility: visible !important;    
z-index: 500 !important;
background-color: #000;
opacity: 0.3;
filter: alpha(opacity=30);

}

   .loadingImg{
background-image:url(images/loadingimage.gif);
background-repeat:no-repeat;
display: block; 
height: 24px;
width: 161px;

}

你必须在images文件夹中添加一个loadingimage.gif,然后相应地调用showLoading和hideLoading函数。