0

TextBoxに値を設定するときにイベントを発生させたいsetText("something")

これまでに試したこと

w.addChangeHandler(new ChangeHandler() {            
    @Override
    public void onChange(ChangeEvent event) {
    isChanged = true;
}
});

また、過去のイベントをリッスンするカスタムTextBoxを作成しようとしました

class CustomTextBox extends TextBox implements HasHandlers {

 private HandlerManager handlerManager;

 public CustomTextBox() {
     super();        
     handlerManager = new HandlerManager(this);  
     sinkEvents(Event.ONPASTE);      
 }

 @Override
 public void onBrowserEvent(Event event) {
   super.onBrowserEvent(event);

   switch (event.getTypeInt()) {
     case Event.ONPASTE:{
      fireEvent(new TextChangeEvent());
       break;
     }
     default:
       // Do nothing
   }
 }

 @Override
 public void fireEvent(GwtEvent<?> event) {
   handlerManager.fireEvent(event);
 }

 public HandlerRegistration addTextChangeEventHandler(TextChangeEventHandler handler) {
   return handlerManager.addHandler(TextChangeEvent.TYPE, handler);
 }
}

成功しなかった場合は、提案をいただければ幸いです。

4

1 に答える 1

2

setTextイベントを発生させません。

ValueChangeHandler<String>にaを追加し、ボックスIDが無効かどうかに関係なく、新しい値を設定するときにすべてのハンドラーに対してを起動するためTextBoxに使用します。setValue("something", true)ValueChangeEvent<String>

于 2012-06-12T10:42:20.797 に答える