有没有办法在GWT中为MenuBar / MenuItem元素添加快捷键?

时间:2010-07-29 07:08:46

标签: java gwt keyboard-shortcuts

我正在尝试将键盘快捷键添加到GWT菜单,与大多数Windows应用程序相同(例如 ALT + F ,然后 O - >激活“文件”菜单,然后“打开”MenuItem)。

我知道它可能与浏览器快捷方式有冲突,所以我对一种禁用它们的方式感兴趣......

从我可以看到谷歌在他们的应用程序中有各种快捷方式,所以必须有办法做到这一点。

谢谢!

修改

感谢Igor的回应,我能够在被其他控件使用之前捕获键盘输入。

我不知道的是如何使MenuBar显示自己(就像鼠标悬停时)。 MenuBar似乎没有方法.open():(

1 个答案:

答案 0 :(得分: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。从选定的MenuItem开始,您可以通过MenuItem.getSubMenu()进入子菜单,依此类推...... :)您可以使用自动打开设置(MenuBar.setAutoOpen(boolean autoOpen))来使其工作就像你想象的那样。