GWT - 如何将KeyDownHandler添加到Rootpanel

时间:2016-03-09 12:58:22

标签: java gwt keyboard-events

基本要求是我的应用程序应该能够识别ALT + S的组合键以保存任何形式,这样用户就不必使用鼠标并将其一直带到“保存”按钮点击以保存形式。

我正在尝试将KeyDownHandler添加到RootPanel中,但这似乎不起作用。

RootPanel rootPanel = RootPanel.get("mainpanel");

KeyDownHandler handler = new KeyDownHandler() {
    @Override
    public void onKeyDown(KeyDownEvent arg0) {

        if (arg0.isAltKeyDown() && arg0.getNativeKeyCode() == 83) {
            save();
        }
    }
};

rootPanel.addDomHandler(handler, KeyDownEvent.getType());

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

关键事件仅适用于您可以在其中按下的文本编辑器。 Panel是div元素。你不能按下div。因此,你不能。

答案 1 :(得分:0)

您可以尝试这样的事情:

Event.addNativePreviewHandler(new Event.NativePreviewHandler() {
  @Override
  public void onPreviewNativeEvent(Event.NativePreviewEvent event) {
    if (event.getNativeEvent()
             .getType().equals("keydown")) {
      if (event.getNativeEvent().getAltKey() &&
          event.getNativeEvent().getKeyCode() == KeyCodes.KEY_S) {
        save();
      }
    }
  }
});

希望有所帮助。