3

我是使用 GWT 的初学者。我有一个menubar弹出窗口Label click。当用户单击屏幕上的任何位置(导致它显示的标签除外)时,我需要将其删除(合法)我尝试了各种方法,例如将这个事件连接到

RootPanel.get().addDomHandler(clickDetectHandler, ClickEvent.getType());

public void onClick(ClickEvent event) {
            Object source = event.getSource();
            if (!(source instanceof MenuBar))
                  panel.remove(menu);

在此处输入图像描述

我什至尝试使用,MouseOutEvent但它没有检测到点击。我可以通过单击返回将其删除legal label。但是我需要在检测到屏幕上的点击时将其删除。请指教。

4

2 回答 2

1

GWT 有一个名为 PopupPanel 的面板,它会自动准确地处理您想要的行为。引用javadoc:

“PopupPanel 的构造函数将 'auto-hide' 作为其布尔参数。如果设置了此项,则当用户在其外部单击时,面板会自动关闭。”

是否可以在 PopupPanel 内显示弹出菜单?

http://google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/gwt/user/client/ui/PopupPanel.html

于 2013-01-22T22:42:40.813 回答
-1

看看这个GWT 示例。这似乎有你描述的行为。它带有源代码。

或者,您可以尝试处理菜单小部件上的模糊事件。

于 2013-01-22T23:32:03.257 回答