2012-03-21 13 views
0

ユーザータイプがの場合、ハンドラをどのように管理できるかを知りたいと思います。たとえば、ログイン画面で、ログインとパスワードを入力した後、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); 

これにより、Enterキーではないキー入力が除外されるという手間が省けます。

1

あなたが説明したケースでは、TextBoxにハンドラを追加する必要があります。フォーカスが当たっているからです.RootPanelなどに追加する必要はありません。このイベントは、ユーザーがを押したときに必要性に関係なく発生するため、と入力してください。

関連する問題