2010-10-20 6 views
5

je veux appeler la fonction cliquez sur l'événement Button GWT ... J'ai essayé ce code, mais il ne fonctionne pas ..clic d'appel() comme programme dans 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"); 
} 
} 

cette fonction wiil appel à cliquez sur le bouton mais il ne remet pas quand appeler cette fonction btnAddField.click()

+0

Je suppose que le bouton est ajouté au DOM lorsque vous appelez 'click()'? –

+0

alors savez-vous comment pouvons-nous résoudre ce problème? – Kandha

Répondre

2

je résoudre ce problème en utilisant ce code

btnAddField.fireEvent(new ButtonClickEvent()) 

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

Cela fonctionne bien maintenant.

6

Vous pouvez aussi essayer:

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

(Il est un petit hack, parce que com.google.gwt.event.dom.client.ClickEvent a constructeur protégé.)

ou

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

Ensuite, dans les deux cas, il n'y a pas besoin pour créer des classes séparées et rompre l'encapsulation pour les gestionnaires afin de tester les événements de clic.

Questions connexes