2013-03-22 55 views
-1

我有一个VerticalPanel,包含一个图像和一个带有一些文本的标签。我想要实现的东西就像桌面图标 - 当你点击它时 - 它会被标记出来,并且可能会出现一个菜单。当您点击图标以外 - 菜单应该消失,图标将被取消标记。GWT实现类似桌面图标

目前我试图通过在FocusPanel中包装VerticalPanel并使用一些焦点处理来实现这一点,但迄今为止我还没有取得任何令人满意的结果。

如果你能给我一些关于如何最好地实现这一点的指导,我将不胜感激。

谢谢。

+1

我会尝试使用为菜单中所作的部件:菜单栏(http://google-web-toolkit.googlecode.com/svn /javadoc/latest/com/google/gwt/user/client/ui/MenuBar.html) - 使用一些样式,它不必像典型的菜单/菜单栏。 – 2013-03-22 15:35:59

回答

0

你正在与FocusPanel包装的正确轨道。关于FocusPanel您要做什么的关键点是捕获点击次数(通过执行HasClickHandlers)。然后,您可以处理点击并分配面板CSS规则,例如border-width,border-colorbackground-color等,根据你想要显示你的图标按下/选择。

+0

呃...好吧,但是当我点击焦点面板时呢?它应该被取消选中。我将如何实现? – mdzh 2013-03-24 17:06:54

+0

自从FocusPanel还添加了[BlurHandler](http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/event/dom/client/BlurHandler.html)实现[HasBlurHandlers](http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/event/dom/client/HasBlurHandlers.html),并在onBlur()中修改您的面板的CSS表示选择丢失。 – 2013-03-25 01:14:51

+0

非常感谢!这就是诀窍! – mdzh 2013-03-25 08:50:44