从gwt中的代码中点击事件

Don*_*onX 23 gwt

我已经创造了一个GWT自定义部件延伸的composite.I正在使用that.For FocusPanel我加ClickHandler.Then我加入了键盘listner.Now上的Enter键的按下按键就应该触发点击event.Can任意一个帮助调焦面板我使用GWT中的代码触发click事件?

focusPanel.addKeyPressHandler(new KeyPressHandler() {
            public void onKeyPress(KeyPressEvent event) {
                if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER)        {
                    // TODO call onClick() method
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 20

我做了这个代码:

if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER)        {
    myButton.fireEvent( new GwtEvent<ClickHandler>() {
        @Override
        public com.google.gwt.event.shared.GwtEvent.Type<ClickHandler> getAssociatedType() {
        return ClickEvent.getType();
        }
        @Override
        protected void dispatch(ClickHandler handler) {
            handler.onClick(null);
        }
   });
}
Run Code Online (Sandbox Code Playgroud)

当然myButton必须是final或public,因为你在另一个事件处理程序中.


DLH*_*DLH 19

我没有为点击事件做过这个,但我已经完成了这样的更改事件.

NativeEvent event = Document.get().createChangeEvent();
DomEvent.fireNativeEvent(event, this);
Run Code Online (Sandbox Code Playgroud)

在[ createClickEvent](http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/dom/client/Document.html#createClickEvent(int,%20int,%20int,%20int ,%20int,%20boolean,%20boolean,%20boolean,%20boolean))方法虽然需要更多参数.

public final NativeEvent createClickEvent(int detail,
                                          int screenX,
                                          int screenY,
                                          int clientX,
                                          int clientY,
                                          boolean ctrlKey,
                                          boolean altKey,
                                          boolean shiftKey,
                                          boolean metaKey)
Run Code Online (Sandbox Code Playgroud)


111*_*01b 15

您也可以使用简单的JSNI方法来完成它.只需将您的元素[例如button.getElement()]传递给此方法:

public static native void clickElement(Element elem) /*-{
    elem.click();
}-*/;
Run Code Online (Sandbox Code Playgroud)