2010-12-16 3 views
4

Я пытаюсь использовать gwt для создания текстового поля и счетчика под ним с длиной символов, но он не учитывает обратное пространство и с 1 символом имеет длину 0. Вот мой код. В чем проблема?GWT TextArea прослушиватель

public class Test implements EntryPoint { 

TextArea textArea; 
Label counter; 

public void onModuleLoad() { 
    textArea = new TextArea(); 
    counter = new Label("Number of characters: 0"); 
    textArea.addKeyPressHandler(new KeyPressHandler() { 
     public void onKeyPress(KeyPressEvent event) { 
     counter.setText("Number of characters: " + textArea.getText().length()); 
    } 
    }); 
    RootPanel.get("myContent").add(textArea); 
    RootPanel.get("myContent").add(counter); 
} 

ответ

4

Может быть, вы хотите отслеживать KeyUp события вместо:

textArea.addKeyUpHandler(new KeyUpHandler() { 
    public void onKeyUp(KeyUpEvent event) { 
     counter.setText("Number of characters: " + textArea.getText().length()); 
    } 
}); 
+0

Спасибо, это работает. – 2010-12-16 14:42:24

1

звучит, как вы подсчет символов до завершения нажмите клавишу события. Возможно, если вы попробуете KeyUpHandler, тогда текстовая область будет включать вновь добавленный символ.

3

Я думаю, что проверили этот код должен работать

public class TextAreaEx implements EntryPoint { 
final TextArea textArea = new TextArea(); 
final Label counter = new Label("Number of characters: 0"); 

public void onModuleLoad() { 
    RootPanel.get().add(textArea); 
    RootPanel.get().add(counter); 
    addlistener(); 
} 

private void addlistener() { 
     textArea.addKeyUpHandler(new KeyUpHandler() { 
      public void onKeyUp(KeyUpEvent keyUpEvent) { 
       counter.setText(" Number of characters:"+textArea.getText().length()); 
      } 
     }); 
     textArea.addChangeHandler(new ChangeHandler() { 
      public void onChange(ChangeEvent changeEvent) { 
       counter.setText(" Number of characters:"+textArea.getText().length()); 
      } 
     }); 
    } 

}

+0

Ваше решение также хорошо. – 2010-12-16 14:42:59

Смежные вопросы