【发布时间】:2012-03-21 15:50:50
【问题描述】:
我想知道当用户键入 ENTER 键时如何开发一个处理程序来管理。例如,登录屏幕,您输入您的登录名和密码,然后按 ENTER。是否需要在RootPanel中添加Handler?在一个按钮?我不知道。
提前感谢您的解决方案。
【问题讨论】:
标签: gwt
我想知道当用户键入 ENTER 键时如何开发一个处理程序来管理。例如,登录屏幕,您输入您的登录名和密码,然后按 ENTER。是否需要在RootPanel中添加Handler?在一个按钮?我不知道。
提前感谢您的解决方案。
【问题讨论】:
标签: gwt
我经常有机会为回车注册一个处理程序,所以我经常使用以下抽象类:
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 );
这为您省去了过滤掉任何不是回车键的按键的繁琐工作。
【讨论】:
在您解释的情况下,应将处理程序添加到 TextBox ,因为它具有焦点,无需添加到 RootPanel 或其他内容。因为当用户按下 Enter 时,无论是否必要都会触发此事件。
【讨论】: