2012-03-21 65 views
0

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

非常感谢您提供解决方案。

回答

5

我经常遇到这种情况,注册一个处理器进入印刷机,所以我经常使用下面的抽象类:

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

在你解释的情况下,处理程序应该被添加到TextBox中,因为它是关注的,不需要添加到RootPanel或其他东西。因为当用户按下输入时,该事件将被解雇,无论其必要性如何。