【问题标题】:Catch GWT ClickEvent at Button在按钮处捕获 GWT ClickEvent
【发布时间】:2013-03-01 01:25:53
【问题描述】:

我有一个按钮,当您单击它时会显示一个对话框。

但是,如果您单击按钮,它会显示对话框,同时它将关闭然后再次打开。

似乎DialogBox的closeEvent在按钮的clickEvent之前被抛出。因此,如果您检查 dialogBox.isShowing() 它将再次打开。因为当显示框的clickEvent被抛出时对话框关闭。

我的想法是捕获 onClick 事件并将其丢弃,但我不知道该怎么做。

有人知道解决这个问题的方法吗?

【问题讨论】:

  • 欢迎来到stackoverflow。你能分享你用代码sn-ps尝试过的东西吗?您是否尝试过 DialogBox 的自动隐藏或模态功能?你能用更好的方式解释你的要求吗?

标签: java gwt button dialog onclick


【解决方案1】:

询问 event.preventDefault()??

您可以在click handler of button 中捕获事件。

【讨论】:

  • event.preventDefault() 是我一直在寻找的东西。但我太愚蠢了让两者都工作。您可以单击按钮关闭该框。但是,如果您通过单击外部关闭该框,则必须单击它多次。或者您可以在框外单击以关闭ist,但按钮将不起作用。
  • 创建一个最终的对话框对象,并通过在点击时维护一个全局变量来显示和隐藏。
  • 并在点击文件时更新全局变量,如stackoverflow.com/questions/4301859/…
【解决方案2】:

您可以创建一个变量来保存对话框的状态。

if(myDialogOpen==false)
{
    openDialog();
}

或者您可以将对话框作为变量保存在您正在使用的类中。

DialogBox myDialog;
if(myDialog==null)
{
    openDialog()
}

无论哪种方式,您都必须在打开或关闭对话框时重置变量。本质上,如果对话框已经打开,它什么也不做。

这些是一些可能的想法,也许如果你添加一些你到目前为止所做的代码,我可以给你一个更好的答案。

【讨论】:

  • 问题是当我有一个变量来保存盒子的状态时,盒子是关闭的。所以变量将被设置为 boxIsClosed 然后 onclickEvent 被触发。因此对于 clickEvent 框已关闭并将再次显示
猜你喜欢
  • 1970-01-01
  • 2013-12-23
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 2012-10-20
  • 2012-02-06
  • 1970-01-01
相关资源
最近更新 更多