Как общее решение, что работает для меня (thx to gal-bracha comment):
Как правило, GWT не имеет классов для обработки входного события (описано здесь
и здесь ). Таким образом, мы должны реализовать это сами:
Класс обработчика:
import com.google.gwt.event.shared.EventHandler;
public interface InputHandler extends EventHandler {
void onInput(InputEvent event);
}
Класс мероприятия:
import com.google.gwt.event.dom.client.DomEvent;
public class InputEvent extends DomEvent<InputHandler> {
private static final Type<InputHandler> TYPE = new Type<InputHandler>("input", new InputEvent());
public static Type<InputHandler> getType() {
return TYPE;
}
protected InputEvent() {
}
@Override
public final Type<InputHandler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(InputHandler handler) {
handler.onInput(this);
}
}
Использование:
box.addDomHandler(new InputHandler() {
@Override
public void onInput(InputEvent event) {
text.setText(box.getText());
}
},InputEvent.getType());
Работает при каждом изменении значения TextBox, включая вставку с использованием контекстного меню. Он не реагирует на стрелки, Ctrl, Shift и т. Д.