2010-10-20 9 views
5

quiero llamar haga clic en función de eventos de botón en GWT ... probé este código, pero no está funcionando ..llamada de clic() funcionan como mediante programación en GWT

Button btnAddField = new Button(); 
btnAddField.setText("Add"); 
btnAddField.setWidth("225px"); 
btnAddField.addClickHandler(new btnAddFieldButtonClickListener()); 


private class btnAddFieldButtonClickListener implements ClickHandler{ 
     public void onClick(ClickEvent event) { 
Window.alert("Called Click Event"); 
} 
} 

esta función wiil llamar al haga clic en el botón pero no llama al llamar a esta función btnAddField.click()

+0

Supongo que el Botón se agrega al DOM cuando se llama 'click()'? –

+0

entonces ¿sabes cómo podemos resolver ese problema? – Kandha

Respuesta

2

resuelvo ese problema mediante el uso de este código

btnAddField.fireEvent(new ButtonClickEvent()) 

private class ButtonClickEvent extends ClickEvent{ 
     /*To call click() function for Programmatic equivalent of the user clicking the button.*/ 
    } 

Está funcionando bien ahora.

6

También puede probar:

view.btnAddField.fireEvent(new ClickEvent() { }); 

(Es un pequeño programa, porque com.google.gwt.event.dom.client.ClickEvent ha protegido constructor.)

o

DomEvent.fireNativeEvent(Document.get().createClickEvent(0, 0, 0, 0, 0, 
      false, false, false, false), view.btnAddField); 

continuación, en ambos casos, no hay necesidad para crear clases separadas y romper la encapsulación para los manejadores con el fin de probar los eventos de clic.

Cuestiones relacionadas