2014-02-25 34 views
0

我想用GWT创建为Java Swing Mnemonics。但我不知道如何弄清楚。我用Google搜索了一下,但我并没有喜欢它的任何示例代码。我想在我的按钮上绑定一些键盘快捷键。我怎样才能实现它?任何建议将非常感激!GWT中的助记符

回答

1

通常,您可以使用NativePreviewHandler处理全局键盘快捷键。这方面的例子,你可以在这里看到:

NativePreviewHandler nativePreviewHandler = new NativePreviewHandler() { 

    @Override 
    public void onPreviewNativeEvent(NativePreviewEvent event) { 
     if (event.getTypeInt() != Event.ONKEYDOWN) { 
      return; 
     } 
     final NativeEvent nativeEvent = event.getNativeEvent(); 
     final boolean altKey = nativeEvent.getAltKey(); 
     final boolean ctrlKey = nativeEvent.getCtrlKey(); 
     if(altKey && ctrlKey && nativeEvent.getKeyCode() == 'A') { 
      // Do Something 
     } 
    } 
}; 
Event.addNativePreviewHandler(nativePreviewHandler); 

但据我klnow,没有通用的方法建立到GWT处理某种动作绑定到一个按钮/菜单以及快捷键。你将不得不自己实现这样的抽象。

1

我希望这段代码能帮到你。这里我们在文档元素上添加一个按键处理器。

RootPanel.get().addDomHandler(new KeyDownHandler() { 

     @Override 
     public void onKeyDown(KeyDownEvent event) { 
      if (event.isControlKeyDown()) { 
       char ch = (char) event.getNativeKeyCode(); 
       if (ch == 's' || ch == 'S') { 
        // do operation for Ctrl+S 
       } else if (ch == 'c' || ch == 'C') { 
        // do operation for Ctrl+C 
       } 
       // add more or use switch case 
      } 
     } 
    }, KeyDownEvent.getType()); 
+0

你的代码很简单,对我来说非常有用。谢谢。在** RootPanel **中绑定keydown事件是非常好的主意。我真的很感激。 – Cataclysm