我如何知道哪个窗口小部件触发了事件(GWT)

时间:2013-11-29 10:27:20

标签: events gwt widget datepicker

我修改了类onValueChange的{​​{1}}方法,以便我可以在我的应用程序中使用的所有ValueChangeHandler中使用它,但我想知道哪个DatePicker解雇了这个事件。我如何获得这些信息?

这是我的DatePicker自定义类的代码:

ValueChangeHandler

非常感谢:)

2 个答案:

答案 0 :(得分:1)

如果您只有一些小部件附加到处理程序,则使用if语句可能更容易:

ValueChangeHandler<Date> handler = new ValueChangeHandler<Date>() {

    @Override
    public void onValueChange(ValueChangeEvent<Date> event) {
        if (box1.equals(event.getSource())) {
            //It was box1.
        } else {
            //It was box2.
        }
    }
};

否则,只需使用event.getSource()并将结果转换为所需类型:

ValueChangeHandler<Date> handler = new ValueChangeHandler<Date>() {

    @Override
    public void onValueChange(ValueChangeEvent<Date> event) {
        DateBox srouce = (DateBox) event.getSource();
        //Do something with the source.
    }
};

答案 1 :(得分:0)

ValueChangeEvent的getSource()方法可以为您解雇该事件。