如何处理禁用文本框上的 setText( "Some Text" ) 事件



我想在文本框中设置值时触发一个事件,setText("something")

到目前为止我尝试过什么

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

我还尝试自定义一个文本框来侦听过去的事件

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);
 }
}

如果没有成功,任何建议将不胜感激。

setText不会触发事件。

ValueChangeHandler<String>添加到TextBox ,然后使用 setValue("something", true) 向所有处理程序触发ValueChangeEvent<String>,同时设置新值,无论是否禁用了框 ID。

最新更新