2012-10-11 61 views
0

我遇到了問題。我在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的組件。與項目的菜單欄是可見的,但如果我想單擊其中一個,沒有任何事情發生。即使該項目沒有突出顯示。 有誰知道我做錯了什麼?

感謝您的幫助

回答

0

你需要指定處理菜單的點擊操作的事件。

例如,如果你想添加一個動作一個菜單項,你應該這樣做如下

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

    public void onClick(final MenuItemClickEvent event) { 
     //processClickEvent(); 
    } 
}); 
+0

我已經嘗試了這一點。例如,我得到了:MenuItem itemDodajUzytkownika = new MenuItem(「Dodajużytkownika...」); itemDodajUzytkownika.addClickHandler(新com.smartgwt.client.widgets.menu.events.ClickHandler(){ 公共無效的onClick(最終MenuItemClickEvent事件){ DodajUzytkownika uzytkownik =新DodajUzytkownika(); uzytkownik.center() ; uzytkownik.show(); } });但它不工作,因爲我不能點擊該項目。爲什麼我不能點擊項目? – BKl

+0

你檢查了MenuItem的isEnabled()的返回值嗎? –

+0

如果isEnabled()爲false,請嘗試setEnabled(true);菜單項目對象的方法 –