我想要用户单击一个按钮,然后他们将看到一个“Toast”消息弹出窗口,该窗口消失,然后按钮单击执行的动作应该会发生。做这个的最好方式是什么?我应该触发一个计时器捕捉点击事件,并让它超时(当吐司被显示时),然后调用处理代码或在事件处理中有任何内置延迟机制时,我可以使用? 我不想让我的烤面包在事件处理中参与其中GWT在事件触发后延迟动作
0
A
回答
1
如果我真的按照你的要求,下面的代码应该做的:
// interface of the "Toast" no matter what the implementation actually is
public interface Toast
{
void open(String message);
void closeFadingAway();
}
// calling code
public class ClientCode
{
private static final int myDelay = 1000; // 1 second in millis
private Toast myToast;
void onMyAction()
{
myToast.open("Your action is being handled...");
Scheduler.get().scheduleFixedDelay(new RepeatingCommand()
{
@Override
public boolean execute()
{
myToast.closeFadingAway();
performAction();
return false; // return false to stop the "repeating" = executed only once
}
}, myDelay);
}
void performAction()
{
// do something interesting
}
}
现在,如果你真正的意思是能够中断的动作,当用户在祝酒按下一些按钮,这是一个不同的故事。
0
如果您使用的是弹出式面板,您可以在弹出式面板上使用addCloseHandler,并从这里调用本来被调用的方法按钮。
popUpPanel.addCloseHandler(new CloseHandler<PopupPanel>(){
@Override
public void onClose(CloseEvent<PopupPanel> event) {
// TODO Do the closing stuff here
}
});
所以当PopupPanel消失,关闭事件触发你可以在那里做你的魔法。
相关问题
- 1. WPF用延迟触发路由事件
- 2. Socket.io延迟触发“断开”事件?
- 3. JQuery&IE - 事件触发延迟
- 4. 触发延迟悬停事件与jQuery
- 5. BroadcastReceiver延迟触发
- 6. 延迟事件处理,直到事件被触发为止
- 7. 在keyReleased()事件后引入延迟
- 8. 如何在jQuery中重新触发(或延迟触发)`mousedown`事件?
- 9. 触发器更新延迟
- 10. IBM BPM-Javascript触发延迟
- 11. SQL Server触发延迟?
- 12. 添加可延迟事件的延迟
- 13. Laravel延迟电子邮件触发
- 14. gwt延迟加载
- 15. Jquery延迟事件
- 16. PointerRealease事件延迟
- 17. Javascript延迟事件
- 18. 触发自定义jQuery事件并延迟它
- 19. 变化URL触发事件在GWT
- 20. 如何在一次运动事件后延迟onTouch?
- 21. Azure的计划触发的Http动作延迟
- 22. 在SWF加载动作触发事件?
- 23. GWT。延迟启动应用程序
- 24. jquery移动延迟滑块事件
- 25. 如何在第一次自动触发事件后触发第二个事件
- 26. 如何在HTML按钮短暂延迟后触发点击?
- 27. GWT:多次触发事件onClick
- 28. jQuery键盘延迟事件
- 29. 延迟上(“点击”)事件
- 30. 延迟反应TextChanged事件
优秀答案:)干杯 – MayoMan 2013-03-28 09:44:57