菜单栏中的菜单项未激活,无法选择或单击

Posted

技术标签:

【中文标题】菜单栏中的菜单项未激活,无法选择或单击【英文标题】:the menu items in menubar is not active and cannot be selected or clicked 【发布时间】:2012-10-11 10:25:10 【问题描述】:

我有一个问题。我正在 gwt 中编写一个 Web 应用程序。我想要一个菜单​​栏,这是我的代码:

Menu[] menus = new Menu[2];
        MenuBar plikMenu = new MenuBar();

        Menu menuPlik = new Menu();

        MenuItem itemZmianaHasla = new MenuItem("Zmiana hasła...");
        //MenuItem itemDodajUzytkownika = new MenuItem("Dodaj użytkownika...");
        MenuItem itemDodajUzytkownika = new MenuItem("Dodaj użytkownika...");

        itemDodajUzytkownika.addClickHandler(new com.smartgwt.client.widgets.menu.events.ClickHandler() 

            public void onClick(final MenuItemClickEvent event)                

                DodajUzytkownika uzytkownik = new DodajUzytkownika();
                uzytkownik.center();
                uzytkownik.show();

            
        );
        MenuItem itemUsunUzytkownika = new MenuItem("Usuń użytkownika");
        MenuItem itemDodajGrupe = new MenuItem("Dodaj grupę...");
        MenuItem itemZarzadzanieSesjami = new MenuItem("Zarządzanie sesjami");
        MenuItemSeparator separator = new MenuItemSeparator();

        MenuItem itemZarzadzanieLicencjami = new MenuItem("Zarządzanie licencjami");
        MenuItem itemRaporty = new MenuItem("Raporty");
        MenuItem itemBackupOracle = new MenuItem("Backup Oracle...");
        MenuItem itemPrzywracanieOracle = new MenuItem("Przywracanie Oracle...");
        MenuItem itemEksportLogiczny = new MenuItem("Eksport logiczny");
        MenuItem itemWyjscie = new MenuItem("Wyjście");
        menuPlik.setItems(itemZmianaHasla, itemDodajUzytkownika, itemUsunUzytkownika,itemDodajGrupe,itemZarzadzanieSesjami,separator, itemZarzadzanieLicencjami,itemRaporty,separator, itemBackupOracle,itemPrzywracanieOracle,itemEksportLogiczny,itemWyjscie);
        menuPlik.setTitle("Plik");
        menuPlik.setWidth(100);
        menus[0] = menuPlik;

        Menu menuPomoc = new Menu();
        menuPomoc.setShowShadow(true);
        menuPomoc.setShadowDepth(10);
        MenuItem itemLicencja = new MenuItem("Licencja...");
        MenuItem itemPodrecznikAdministratora = new MenuItem("Podręcznik administratora...");
        MenuItem itemOProgramie = new MenuItem("O programie...");
        menuPomoc.setItems(itemLicencja, itemPodrecznikAdministratora, itemOProgramie);
        menuPomoc.setTitle("Pomoc");
        menuPomoc.setWidth(80);
        menus[1] = menuPomoc;        
        plikMenu.addMenus(menus, 0);    
        plikMenu.setWidth(80);
        plikMenu.enable();


        dialogHTopPanel.addMember(plikMenu); 

我使用 smartgwt 组件。带有项目的菜单栏是可见的,但是如果我想单击其中一个,则什么也没有发生。即使该项目没有突出显示。 有谁知道我做错了什么?

感谢您的帮助

【问题讨论】:

【参考方案1】:

您需要指定处理菜单点击动作的事件。

例如,如果你想为一个菜单项添加一个动作,你应该这样做

MenuItem itemRaporty = new MenuItem("Raporty");
itemRaporty.addClickHandler(new ClickHandler() 

    public void onClick(final MenuItemClickEvent event) 
        //processClickEvent();
    
);

【讨论】:

我已经尝试过了。例如我有: MenuItem itemDodajUzytkownika = new MenuItem("Dodaj użytkownika..."); itemDodajUzytkownika.addClickHandler(new com.smartgwt.client.widgets.menu.events.ClickHandler() public void onClick(final MenuItemClickEvent event) DodajUzytkownika uzytkownik = new DodajUzytkownika(); uzytkownik.center(); uzytkownik.show(); );但它不起作用,因为我无法单击该项目。为什么我不能点击项目? 你检查过MenuItem的isEnabled()的返回值吗? 如果 isEnabled() 为假,请尝试 setEnabled(true);菜单项对象的方法

以上是关于菜单栏中的菜单项未激活,无法选择或单击的主要内容,如果未能解决你的问题,请参考以下文章

C#菜单栏中的分割线怎么插入

下拉菜单在导航栏中无法按预期工作

如何将片段目标绑定到底部导航栏中的菜单项?

重新加载页面后如何突出显示导航栏中的活动菜单项

驻留在菜单栏中的 Mac 应用程序的技术术语是啥?

libreoffice可以查看word文档的文档结构图吗