KEY_ENTER处理程序RootPanel GWT

时间:2012-03-21 15:50:51

标签: gwt

我想知道如何在用户输入 ENTER 键时开发一个Handler来管理。例如,在登录屏幕上,键入登录名和密码,然后按 ENTER 。是否需要在RootPanel中添加Handler?在一个按钮?我不知道。

提前感谢您的解决方案。

2 个答案:

答案 0 :(得分:5)

我经常有机会为enter press注册一个处理程序,所以我经常使用以下抽象类:

   public abstract class EnterKeyHandler implements KeyDownHandler {
    public void onKeyDown(KeyDownEvent event) {
        if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER)
            enterKeyDown(event);
    }
    public abstract void enterKeyDown(KeyDownEvent event);
    }

然后我通过在所有适当的小部件中注册它来实现如下:

EnterKeyHandler doStuffHandler = new EnterKeyHandler() {
        public void enterKeyDown(KeyDownEvent event) {
        doStuff();      }
    };
    someTextBox.addKeyDownHandler(doStuffHandler );
    anotherTextBox.addKeyDownHandler(doStuffHandler );
    yetAnotherTextBox.addKeyDownHandler(doStuffHandler );

这可以节省您过滤掉任何不是输入键的按键的麻烦。

答案 1 :(得分:1)

在你解释的情况下,处理程序应该被添加到TextBox,因为它是聚焦的,不需要添加到RootPanel或其他东西。因为当用户按下 Enter 时,无论其必要性如何都会触发此事件。