Events 如何在禁用的文本框上处理setText(“某些文本”)事件

Events 如何在禁用的文本框上处理setText(“某些文本”)事件,events,gwt,textbox,Events,Gwt,Textbox,我想在使用setText(“某物”) 到目前为止我试过什么 w.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { isChanged = true; } }); 我还试着用一个自定义的文本框来监听过去的事件 class CustomTextBox extends TextBox implements HasHandl

我想在使用
setText(“某物”)

到目前为止我试过什么

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);
 }
}
类CustomTextBox扩展TextBox实现Hashandler{
私人经理人;
公共自定义文本框(){
超级();
handlerManager=新的handlerManager(本);
sinkEvents(Event.ONPASTE);
}
@凌驾
公共无效onBrowserEvent(事件){
超级浏览器事件(事件);
开关(event.getTypeInt()){
case Event.ONPASTE:{
fireEvent(新的TextChangeEvent());
打破
}
违约:
//无所事事
}
}
@凌驾
公共无效火灾事件(GwtEvent事件){
handlerManager.fireEvent(事件);
}
公共句柄注册addTextChangeEventHandler(TextChangeEventHandler){
返回handlerManager.addHandler(TextChangeEvent.TYPE,handler);
}
}

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

setText
不会引发事件


valuechangeholder
添加到
TextBox
,然后使用
setValue(“something”,true)
在设置新值时向所有处理程序触发
valuechangeent
,无论框id是否已禁用。

您的
ONPASTE
实验是一个不同的问题吗?我不太理解这里的问题。不,我在想粘贴事件可以处理setText(“”)操作,这是有效的!是否可以将onBrowserEvent和addValueChangeHandler(…)组合在同一个文本框中?