在GWT应用程序中捕获ctrl-z(撤消)和ctrl-y(重做)

时间:2011-10-27 09:55:10

标签: java javascript gwt java-ee jsni

我一直在编写一个基于GWT 2.3的Web应用程序,随之而来的是我编写了自己的undo和redo函数。当用户按下ctr-z或ctr-y时,撤消或重做最后的更改。它们是一种有效检测页面上任何位置发生的ctr-z和ctr-y按键事件并使它们运行我自己的函数的方法。

1 个答案:

答案 0 :(得分:3)

添加NativePreviewHandler

Event.addNativePreviewHandler(new NativePreviewHandler() {
  @Override
  public void onPreviewNativeEvent(NativePreviewEvent event) {
    if (event.getTypeInt() == Event.ONKEYDOWN) {
      NativeEvent ne = event.getNativeEvent();

      if (ne.getCtrlKey() && ne.getKeyCode() == 'Z') {
        event.cancel();
        // Handle undo
      } else if (ne.getCtrlKey() && ne.getKeyCode() == 'Y') {
        event.cancel();
        // Handle redo
      }
    }
  }
});