[英]GWT function finishes before DatePicker is able to return a selected date, how to delay until a date is returned?
下面的代碼無需等待popUpPanel(日期選擇器)返回用戶選擇的日期即可運行。 我知道有一個gwt的計時器方法,但我想知道是否還有我可以使用的另一個延遲方法,可以等待它返回選定的日期,然后執行其余代碼。
public static dateCalc(){
Date selection = new Date();
Date start = new Date();
Date end = new Date();
PopupCalendar popupCalendar = new PopupCalendar();
popupCalendar.displayPopupCalendar();
popupCalendar.setDate();
while(popupCalendar.calendarVisible()){
selection = popupCalendar.getDate();
return date;
}
public class PopupCalendar {
public String dateString;
public Date date;
public DatePicker datePicker = new DatePicker();
final PopupPanel calendarPanel = new PopupPanel(true);
public void displayPopupCalendar() {
calendarPanel.setWidget(datePicker);
calendarPanel.setGlassEnabled(true);
calendarPanel.center();
calendarPanel.show();
datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
@Override
public void onValueChange(ValueChangeEvent<Date> dateValueChangeEvent) {
date = dateValueChangeEvent.getValue();
setDate(date);
dateString = DateTimeFormat.getMediumDateFormat().format(date);
//System.out.println("User selected the date: " + dateString);
calendarPanel.hide();
}
});
return date;
}
您必須異步執行GWT / JavaScript(在客戶端中)中的所有操作。 因此,恐怕您無法阻止“ while”循環。
我認為,在大多數情況下,最好避免計時器/延遲。
看起來您幾乎可以使用ValueChangeHandler了。 使下一件事發生在火災發生時?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.