根据我收到的建议,以下是我想出的方法:将可选日期限制为仅当日和之后。这适用于GWT 2.1.1
final DateBox dateBox = new DateBox();dateBox.addValueChangeHandler(new ValueChangeHandler<Date>(){ @Override public void onValueChange(final ValueChangeEvent<Date> datevalueChangeEvent) { if (datevalueChangeEvent.getValue().before(today())) { dateBox.setValue(today(), false); } }});dateBox.getDatePicker().addShowRangeHandler(new ShowRangeHandler<Date>(){ @Override public void onShowRange(final ShowRangeEvent<Date> dateShowRangeEvent) { final Date today = today(); Date d = zeroTime(dateShowRangeEvent.getStart()); while (d.before(today)) { dateBox.getDatePicker().setTransientEnabledonDates(false, d); d = nextDay(d); } }});为了完整
static起见,以下是处理日期的辅助方法:
private static Date today(){ return zeroTime(new Date());}private static Date zeroTime(final Date date){ return DateTimeFormat.getFormat("yyyyMMdd").parse(DateTimeFormat.getFormat("yyyyMMdd").format(date));}private static Date nextDay(final Date date){ return zeroTime(new Date(date.getTime() + 24 * 60 * 60 * 1000));}


