Events 如何知道哪个小部件触发了事件(GWT)
我已经修改了类Events 如何知道哪个小部件触发了事件(GWT),events,gwt,widget,datepicker,Events,Gwt,Widget,Datepicker,我已经修改了类ValueChangeHandler的onValueChange方法,以便我可以在应用程序中的所有DatePicker中使用它,但我想知道是哪个DatePicker触发了事件。我如何获得这些信息 以下是我的ValueChangeHandler自定义类的代码: class calendarChangeHandler implements ValueChangeHandler<Date>{ @Override public void onValueChan
ValueChangeHandler
的onValueChange
方法,以便我可以在应用程序中的所有DatePicker
中使用它,但我想知道是哪个DatePicker
触发了事件。我如何获得这些信息
以下是我的ValueChangeHandler
自定义类的代码:
class calendarChangeHandler implements ValueChangeHandler<Date>{
@Override
public void onValueChange(ValueChangeEvent<Date> event) {
endCalendar.hideDatePicker();
initCalendar.hideDatePicker();
Date initDate = initCalendar.getValue();
Date endDate = endCalendar.getValue();
int numDias = 0;
if (initDate != null && endDate != null && (endDate.after(initDate))){
numDias = (int)((endDate.getTime()-initDate.getTime())/MILLSECS_PER_DAY);
createTable(numDias+2);
}
}
}
类calendarChangeHandler实现ValueChangeHandler{
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
endCalendar.hideDatePicker();
initCalendar.hideDatePicker();
Date initDate=initCalendar.getValue();
日期endDate=endCalendar.getValue();
int numDias=0;
如果(initDate!=null&&endDate!=null&&endDate.after(initDate))){
numDias=(int)((endDate.getTime()-initDate.getTime())/MILLSECS_/天);
createTable(numDias+2);
}
}
}
非常感谢:)的getSource()方法应该会告诉您是谁触发了事件。如果处理程序只附带了几个小部件,那么使用
If
语句可能更容易:
ValueChangeHandler=newvaluechangehandler(){
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
if(box1.equals(event.getSource())){
//那是盒子1。
}否则{
//是第二箱。
}
}
};
否则,只需使用event.getSource()
并将结果强制转换为所需类型:
ValueChangeHandler=newvaluechangehandler(){
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
DateBox srouce=(DateBox)event.getSource();
//对源代码做些什么。
}
};
但是当我尝试这样显示它时:Window.alert(String.valueOf(event.getSource());我只是在这条消息中得到了对象的类型:尝试将其转换为日期框。