在GWT中以编程方式调用click()函数

时间:2010-10-20 05:12:30

标签: gwt

我想在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");
}
}

此功能将在单击按钮时调用 但是在调用此函数btnAddField.click()

时它不会调用

2 个答案:

答案 0 :(得分:6)

您也可以尝试:

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

(这是一个小小的黑客,因为com.google.gwt.event.dom.client.ClickEvent已经保护了构造函数。)

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

然后,在这两种情况下,都不需要为处理程序创建单独的类并打破封装,以便测试点击事件。

答案 1 :(得分:2)

我使用此代码解决了这个问题

btnAddField.fireEvent(new ButtonClickEvent ())

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

现在工作正常。