我想在GWT中为Button调用click事件函数...我尝试了这段代码,但它无法正常工作..
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");
}
}
Run Code Online (Sandbox Code Playgroud)
这个函数会在单击按钮时调用,但调用此函数时不会调用 btnAddField.click()
你也可以尝试:
view.btnAddField.fireEvent(new ClickEvent() { } );
Run Code Online (Sandbox Code Playgroud)
(这是一个小黑客,因为com.google.gwt.event.dom.client.ClickEvent有保护构造函数.)
要么
DomEvent.fireNativeEvent(Document.get().createClickEvent(0, 0, 0, 0, 0,
false, false, false, false), view.btnAddField);
Run Code Online (Sandbox Code Playgroud)
然后,在这两种情况下,都不需要为处理程序创建单独的类并打破封装,以便测试单击事件.
我通过使用这段代码解决了这个问题
btnAddField.fireEvent(new ButtonClickEvent ())
private class ButtonClickEvent extends ClickEvent{
/*To call click() function for Programmatic equivalent of the user clicking the button.*/
}
Run Code Online (Sandbox Code Playgroud)
现在工作正常。
| 归档时间: |
|
| 查看次数: |
14542 次 |
| 最近记录: |