在GWT中触发(KEY_ENTER)按键事件

时间:2012-10-23 07:39:58

标签: gwt

我要做的是在GWT中触发输入键按下事件。 这是我的关键处理程序:

    itemBox.addKeyDownHandler(new KeyDownHandler() { 
          public void onKeyDown(KeyDownEvent event) {
                 if(event.getNativeKeyCode == KeyCodes.KEY_ENTER) {
                       // do something
                 }

后来我想开一个回车按键事件,但我似乎无法弄清楚我是怎么做到的。我想做一些像KeyDownEvent.setNativeKeyCode(KEY_ENTER)的东西。

     textBox.fireEvent(new KeyDownEvent(null));

是否可以设置这些参数?

1 个答案:

答案 0 :(得分:8)

您可以使用DomEvent.fireNativeEvent而不是textBox.fireEvent来触发事件。

以下是如何执行此操作的工作示例:

final TextBox tb = new TextBox();
tb.addKeyDownHandler(new KeyDownHandler() {

    @Override
    public void onKeyDown(KeyDownEvent event) {
     if(event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                 Window.alert("enter!");
           }
    }
});

Button b = new Button("keyevent");
b.addClickHandler(new ClickHandler() {

    @Override
    public void onClick(ClickEvent event) {
    DomEvent.fireNativeEvent(Document.get().createKeyDownEvent(false, false, false, false, KeyCodes.KEY_ENTER), tb);
    }
});

RootPanel.get().add(tb);
RootPanel.get().add(b);