我有一个VerticalPanel,包含一个图像和一个带有一些文本的标签。我想要实现的东西就像桌面图标 - 当你点击它时 - 它会被标记出来,并且可能会出现一个菜单。当您点击图标以外 - 菜单应该消失,图标将被取消标记。GWT实现类似桌面图标
目前我试图通过在FocusPanel中包装VerticalPanel并使用一些焦点处理来实现这一点,但迄今为止我还没有取得任何令人满意的结果。
如果你能给我一些关于如何最好地实现这一点的指导,我将不胜感激。
谢谢。
我有一个VerticalPanel,包含一个图像和一个带有一些文本的标签。我想要实现的东西就像桌面图标 - 当你点击它时 - 它会被标记出来,并且可能会出现一个菜单。当您点击图标以外 - 菜单应该消失,图标将被取消标记。GWT实现类似桌面图标
目前我试图通过在FocusPanel中包装VerticalPanel并使用一些焦点处理来实现这一点,但迄今为止我还没有取得任何令人满意的结果。
如果你能给我一些关于如何最好地实现这一点的指导,我将不胜感激。
谢谢。
你正在与FocusPanel包装的正确轨道。关于FocusPanel您要做什么的关键点是捕获点击次数(通过执行HasClickHandlers)。然后,您可以处理点击并分配面板CSS规则,例如border-width
,border-color
或background-color
等,根据你想要显示你的图标按下/选择。
呃...好吧,但是当我点击焦点面板时呢?它应该被取消选中。我将如何实现? – mdzh 2013-03-24 17:06:54
自从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
非常感谢!这就是诀窍! – mdzh 2013-03-25 08:50:44
其看来,你需要一个ToggleButton和基本PopupPanel
我会尝试使用为菜单中所作的部件:菜单栏(http://google-web-toolkit.googlecode.com/svn /javadoc/latest/com/google/gwt/user/client/ui/MenuBar.html) - 使用一些样式,它不必像典型的菜单/菜单栏。 – 2013-03-22 15:35:59