2012-03-21 112 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或其他東西。因爲當用戶按下輸入時,該事件將被解僱,無論其必要性如何。