7

私がやろうとしているのは、GWT でエンター キー プレス イベントを発生させることです。これは私のキーハンドラです:

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

その後、Enterキーを押すイベントを発生させたいのですが、これを行う方法がわかりません。KeyDownEvent.setNativeKeyCode(KEY_ENTER) のようなことをしたいです。

     textBox.fireEvent(new KeyDownEvent(null));

これらのパラメータを設定することは可能ですか?

4

1 に答える 1

10

textBox.fireEvent の代わりに、DomEvent.fireNativeEvent を使用してイベントを発生させることができます。

これを行う方法の実際の例を次に示します。

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);
于 2012-10-23T08:02:59.933 に答える