阻止事件在GWT中冒泡

Ste*_*gle 5 java events gwt

我有以下代码片段,changeTextArea是一个TextArea对象.

changeTextArea.addKeyboardListener(new KeyboardListenerAdapter()
  public void onKeyPress( Widget sender, char keyCode, int modifier){
    //do something
    //I WISH TO STOP THE EVENT THAT MAPS TO THIS KEYPRESS FROM BUBBLING ANY FURTHER
  }
}
Run Code Online (Sandbox Code Playgroud)

我如何停止导致调用此方法的事件从changeTextArea冒泡到Panels/Widgets/Composites /包含changeTextArea的任何内容.简洁地说,如何阻止它进一步冒泡.任何帮助将不胜感激(特别是代码示例).

rus*_*elf 6

据我所知,你无法通过键盘监听器来实现,但可以通过使用DOM类添加事件预览来实现:

DOM.addEventPreview(EventPreview preview) 
Run Code Online (Sandbox Code Playgroud)

然后当你得到这个事件:

onEventPreview(Event event) 
Run Code Online (Sandbox Code Playgroud)

您应该返回false,表示您要取消该事件.Event对象也支持此方法:

public final void cancelBubble(boolean cancel)
Run Code Online (Sandbox Code Playgroud)

取消给定事件的冒泡.这将阻止事件传播到父元素.

您可以在此处找到更多详细信息:http: //google-web-toolkit.googlecode.com/svn/javadoc/1.5/index.html?overview-summary.html