GWT 2.4自定义ListBox不会触发Change事件

时间:2012-09-26 21:44:21

标签: gwt listbox

我通过扩展标准GWT ListBox添加了一些额外的功能:

public class FeatureListBox extends ListBox
{
    public FeatureListBox()
    {
    }
    public FeatureListBox(boolean isMultipleSelect)
    {
        super(isMultipleSelect);
    }
    public FeatureListBox(Element element)
    {
        super(element);
    }
}

这里没什么好看的。但是,Change事件现在没有触发,或者至少没有调用处理程序(每个附件)。

FeatureListBox listBox = new FeatureListBox();
listBox.addChangeHandler(new ChangeHandler()
{
    public void onChange(ChangeEvent event)
    {
        // Do something here...
    }
});

任何想法为什么?

2 个答案:

答案 0 :(得分:0)

FeatureListBox中删除无参数构造函数或在其中调用super(),否则不会发生超类中的初始化,这可能会导致您看到的内容。

答案 1 :(得分:0)

问题在于我使用自定义列表框的方式。在我的应用程序中,我使用窗口小部件类的静态 wrap()方法将GWT Widgets包装在页面上的现有DOM元素中,其中窗口小部件被标记为附加,从而使它们成为触发事件。我最初没有使用我的自定义列表框类,所以我最终实现了一个类似于常规ListBox小部件的静态 wrap()方法,并在我的代码中使用它。现在一切都像魅力一样。