2014-10-20 2 views
1

Событие onFocus не запускается в текстовом поле. У меня ниже кода, я использую GWT 2.6.0Событие GWT onFocus не запускается в текстовом поле

Когда я использовал обработчик фокуса в текстовом поле, тогда он работает нормально, но у меня также есть событие браузера, где я не могу вызвать событие фокуса. Ниже приведен код для браузера.

@Override 
    public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, 
      ValueUpdater<String> valueUpdater) 
    { 
     String eventType = event.getType();  

     if(BrowserEvents.FOCUS.equals(eventType)) 
     { 
      //Do what you want on focus 
     } 
+0

Какое текстовое поле? HTML '' или GWT 'TextBox'? –

+0

Его GWT TextBox – Ganesh

ответ

1

Вы должны использовать методы, предоставляемые (для простоты) с помощью GWT:

textBox.addFocusHandler(new FocusHandler() { 
    @Override 
    public void onFocus(FocusEvent event) { 
     //Do some operation onFocus event 
    } 
}); 

Это часть HasFocusHandlers которая реализуется довольно много виджетов GWT в. Аналогичные обработчики можно найти для событий мыши, клавиатуры, размытия и т. Д.

Для полноты: если вам нужно слушать непосредственно на DOM ONFOCUS события на любом Widget, вам нужно вызвать метод sinkEvents первым с соответствующими битами/флагов (или переопределить его в виджете). Вы можете найти соответствующие флаги в классе Event.

+0

См. Я использую тот же код для поля Integer и его правильную работу там. Проблема только с текстовым полем. – Ganesh

+0

Посмотрите, что я использую тот же код для поля Integer (расширенный из ValueBox GWT, минуя ) и его корректно работающий там. Проблема связана только с textBox. – Ganesh

+1

Пожалуйста, поделитесь еще одним кодом - как вы создаете экземпляр своего TextBox, как вы слушаете события фокуса и т. Д. Вы пробовали FocusHandler или переписываете 'onBrowserEvent'? –