2012-06-06 23 views
7

Tôi có ứng dụng GWT nhỏ, trong đó tôi đang cho thấy một popup trên thành côngGWT: tôi có thể đưa trễ vài giây sau khi hiển thị một popup

  if(success){ 
       DescoratedPopupPanel popup = new DecoratedPopupPanel(); 
       popup.show(); 
       //Now here i want to wait for like 5 secs and then 
       popup.hide(); 
      } 

Bất kỳ ý tưởng làm thế nào tôi có thể đặt một dealay 5 giây trước ẩn popup

Cảm ơn

Trả lời

19

Đây là mã có sử dụng Timer để tạo ra 5 giây chậm trễ:

 final DecoratedPopupPanel popup = new DecoratedPopupPanel(); 
     popup.show(); 
     // Now here i want to wait for like 5 secs and then 
     Timer timer = new Timer() 
     { 
      @Override 
      public void run() 
      { 
       popup.hide(); 
      } 
     }; 

     timer.schedule(5000); 
5

bạn có thể sử dụng một com.google.gwt.user.client.Timer cho phép bạn sắp xếp một công việc trong tương lai.

Như Thomas Broyer đã đề cập trong nhận xét, bạn cũng có thể sử dụng com.google.gwt.core.client.Scheduler#scheduleFixedDelay() với số RepeatingCommand luôn trả về false để cho biết rằng chỉ nên thực hiện một lần.

+0

Hoặc sử dụng 'com.google.gwt.core.client.Scheduler'; sự khác biệt chính là một 'Timer' có thể được hủy bỏ, không phải là một' ScheduledCommand'. –

+0

@ThomasBroyer Làm thế nào bạn sẽ sử dụng Scheduler với một sự chậm trễ cố định cho một nhiệm vụ không lặp lại, mặc dù? Javadoc của hai phương pháp bao gồm một sự chậm trễ là để lặp lại nhiệm vụ nếu tôi nhìn thấy nó một cách chính xác. – ftr

+0

Ah, đúng vậy! Bạn có thể sử dụng 'RepeatingCommand' mà trả về vô điều kiện' false' mặc dù, tương đương với 'ScheduledCommand'. –

Các vấn đề liên quan