2014-01-08 46 views
0

我创建了一个progressmessagebox,用于跟踪客户端加载时的进度。我希望能够以更新什么是实时正在进行的用户,特别是我有这3个“子目标”:跟踪ProgressMessageBox的进度:GXT 3.0.1

1“正在初始化...”:%0表示完全

2-”检索实验室配置...”:30%完成

3- “启动客户端...”:80%完成

4- “客户端准备”:%100

这是一个我目前有代码的框架,但它不起作用,但它不显示步骤2和3:

final ProgressMessageBox box = new ProgressMessageBox("Please wait", "Loading items..."); 
    box.setProgressText("Initializing..."); 
    box.show(); 


    final Timer t = new Timer() { 
     float i; 

     @Override 
     public void run() { 
     box.updateProgress(i/100, "{0}% Complete"); 
     i += 5; 
     if (i > 100) { 
      cancel(); 
      Info.display("Message", "Client is ready"); 
     } 
     } 
    }; 
    t.scheduleRepeating(500); 

box.updateProgress(0.3, "Retrieving lab configuration..."); 
//code to retrieve the lab configuration.. 

box.updateProgress(0.8, "Starting the client..."); 
//code to start the client... 

谢谢!

回答

-1

您必须使用多线程以避免窗体冻结。

请检查这个link:如何使一个加载程序在一个单独的线程?

+0

此答案与GXT没有任何关系。 –