菜单栏以gwt为单位

时间:2011-06-28 04:50:10

标签: gwt menubar

我在gwt中使用MenuBar控件并想要获取所选项目。我阅读了API文档API document for MenuBar,但找不到任何可以帮助我的方法。请告诉我如何捕获MenuBar的所选项目。我想在用户点击它时获取所选项目。

3 个答案:

答案 0 :(得分:3)

你的问题的答案是命令。 http://google-web-toolkit.googlecode.com/svn/javadoc/2.3/com/google/gwt/user/client/Command.html

当您将项目添加到菜单栏(或其任何子项)时,请指定

 Command helloCmd = new Command() {
   public void execute() {
     Window.alert("Hello");
   }
 };
addItem("Hello", helloCmd);

menuItem.setCommand(helloCmd);

您也可以独立于任何菜单项执行命令:

 helloCmd.execute();

答案 1 :(得分:0)

我不明白为什么方法getSelectedItem()不起作用。也许是因为你想在用户点击时拥有该项目?只需使用一个命令创建您的MenuItems,该命令会向MenuBar询问选择的项目。对某些项目使用单独的命令可能更好。

尼科

答案 2 :(得分:0)

我遇到了同样的问题并解决了以下问题:

public class CustomMenuBar extends MenuBar {

    public CustomMenuBar(boolean isVertical) {
        super(isVertical);
    }

    public MenuItem getSelected() {
        return super.getSelectedItem();
    }

    public void clearSelected() {
        super.selectItem(null);
    }
}

你可以检查它是否为null(如果不为null则清除它)