2010-07-29 32 views
1

我想鍵盤快捷方式添加到GWT菜單,相同大多數Windows應用程序(例如ALT +˚F,然後Ø - >激活「文件」菜單,然後選擇「打開」菜單項)。是否有任何方法爲GWT中的MenuBar/MenuItem元素添加快捷鍵?

我知道這可能與瀏覽器的快捷鍵衝突,所以我感興趣的禁用那些過於的方式...

從我所看到的谷歌擁有各種快捷方式在他們的應用程序,因此,必須有做一個方法來做到這一點。

謝謝!

編輯

感謝伊戈爾的迴應,我能夠用其他控件被消耗之前捕獲鍵盤輸入。

我不知道的是如何使MenuBar顯示本身(例如當鼠標懸停時)。菜單欄似乎並不有一個方法。開():(

回答

2

我還沒有真正嘗試過這一點,但NativeEvent似乎是你在找什麼你可以通過Event.addNativePreviewHandler(Event.NativePreviewHandler)得到它:

Event.addNativePreviewHandler(new Event.NativePreviewHandler() { 
    @Override 
    public void onPreviewNativeEvent(Event.NativePreviewEvent event) { 
     nativeEvent nativeEvent = event.getNativeEvent(); 
     // Do all sort of cool stuff with nativeEvent 
    } 
}); 

參考:GWT Google Group thread


以編程方式選擇菜單項,請使用MenuBar.selectItem(MenuItem item) - 你可能需要保持相關MenuItem S的軌跡從選定MenuItem你可以通過MenuItem.getSubMenu()等進入其子菜單... :)您可以使用自動打開設置(MenuBar.setAutoOpen(boolean autoOpen))來播放它,使其像您設想的那樣工作。

+0

謝謝你,這指出我在正確的方向。似乎在Firefox上正常工作,但像往常一樣,IE又是一個婊子。不會觸發「特殊」鍵的事件(如ALT,CTRL)。 – Bogdan 2010-07-29 08:44:17

+0

你的意思是,當* only * Alt被按下時?對於與其他鍵的組合,'getAltKey()'應該工作。 – 2010-07-29 10:12:28

+0

否。在IE中,ALT + i或CTRL + i不起作用。然而,只是「我」有效。對於我現在需要的東西,我可以使用直接的快捷方式(沒有Alt或Ctrl)。 – Bogdan 2010-07-29 12:45:01

相關問題