KEY_ENTER Обработчик RootPanel GWT - PullRequest
0 голосов
/ 21 марта 2012

Я хотел бы знать, как я мог бы разработать обработчик для управления, когда пользователь нажимает клавишу ENTER . Например, на экране входа в систему вы вводите свой логин и пароль, а затем нажимаете ENTER . Обязательно ли добавлять обработчик в RootPanel? В кнопке? Я не знаю.

Заранее спасибо за решение.

Ответы [ 2 ]

5 голосов
/ 21 марта 2012

Мне часто приходится регистрировать обработчик для вводов, поэтому я часто использую следующий абстрактный класс:

   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 голос
/ 21 марта 2012

В случае, если вы объяснили, обработчик должен быть добавлен в TextBox, поскольку он сфокусирован, нет необходимости добавлять его в RootPanel или что-то еще.Поскольку это событие будет запущено независимо от его необходимости, когда пользователь нажимает Enter .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...