0

GWT 2.5.1;将 Eclipse 4.2 与 GPE 一起使用;
使用 UiBinder 指定的 UI

该应用程序会弹出一个包含“开始”按钮的启动画面。该按钮的单击处理程序进行各种初始化,包括隐藏自身和显示其他三个按钮、图像和文本;它还通过 RequestBuilder 发起服务器请求 (XMLHttpRequest)。RequestBuilder 回调使用返回的服务器数据在画布元素中绘制条形图。

在我单击“开始”按钮后,浏览器窗口看起来与上面提到的所有视觉元素一样。但是这三个按钮对点击没有响应。不仅没有调用它们的处理程序,当鼠标单击它们时,它们也不会显示激活的轻微视觉指示。浏览器未冻结;例如,如果调整窗口大小,则调用应用程序的调整大小处理程序。

基于日志记录:“Go”按钮处理程序返回后,RequestBuilder 回调执行;然后“什么都没有发生”,即没有更多的日志输出(除非我调整窗口大小)。

FWIW 这是我的第一次 GWT 尝试。

4

3 回答 3

0

通过实验,我找到了部分答案。三个非响应按钮在 ui.xml 文件中声明,其中 {style.hidden} 引用了我的 .css 中的可见性:隐藏属性。在 java 代码中,我使用以下命令取消隐藏这些按钮:

protected void showElement(Element e) {
  e.removeClassName(style.hidden());
  }

显然,以隐藏的方式开始生活,然后以这种方式显示不足以激活按钮。我即将开始研究为什么会这样,但是只要我没有发表评论表明我不那么无知,就仍然欢迎对这个“较小”问题的回答。

于 2013-04-28T00:47:10.413 回答
0

您可以在 UiBinder 文件中而不是在 Java 代码中设置按钮的位置吗?将它们放在 Horizo​​ntalPanel 中,它们将自动间隔。

而不是在元素级别进行交互以隐藏按钮,而是使用 setVisible(true); 调用您的按钮实例;例如,buttonA.setVisible(true)

于 2013-04-30T09:44:50.167 回答
0

(评论太长了)

我刚刚发现问题与我在相同位置有按钮的事实有关,其中只有某些按钮应该在给定时间可见。换句话说,用户将在第一个页面上的相同位置看到:

ButtonA ButtonB ButtonC

或者

ButtonD ButtonE ButtonF

或者

BigButtonG (as wide either of the preceding groups)

问题在于,无论可见性如何,最后声明的上述三个显示中的任何一个(实际上)具有更高的 z-index,并且是唯一一个可以响应鼠标的显示。所以我即将实现一个在显示/隐藏按钮组的代码中显式设置 div z-indexes 的解决方案。

于 2013-04-28T10:08:56.667 回答