2012-06-12 17 views
0

我想火設置在一個TextBox的值與setText("something")如何處理的setText(「一些文本」)事件上被禁用的文本框

當一個事件我試過到目前爲止

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

沒有成功,我們將不勝感激。

+0

你的ONPASTE實驗是一個獨特的問題嗎?這裏我不太瞭解這個問題。 –

+0

不,我在考慮粘貼事件可以處理setText(「」)動作 – outellou

回答

2

setText不會觸發事件。

添加ValueChangeHandler<String>TextBox,然後用setValue("something", true)火一個ValueChangeEvent<String>所有的處理程序,同時設定新的價值,盒ID是否禁用。

+0

這是行得通的!是否有可能將onBrowserEvent和addValueChangeHandler(...)組合在同一個TextBox上? – outellou

相關問題