Java Vaadin日期字段验证未显示验证错误

Java Vaadin日期字段验证未显示验证错误,java,datepicker,vaadin,vaadin8,Java,Datepicker,Vaadin,Vaadin8,您好,我正在使用vaadin8,我正在尝试使用vaadinsdatefield进行用户输入 private DateField date = new DateField("Date of Birth"); ... binder.forField(date).asRequired("Some Warning").withValidator(new DateValidator()).bind(Person::getDateOfBirth, Person::setDateOfBirth); Date

您好,我正在使用vaadin8,我正在尝试使用vaadinsdatefield进行用户输入

private DateField date = new DateField("Date of Birth");
...
binder.forField(date).asRequired("Some Warning").withValidator(new DateValidator()).bind(Person::getDateOfBirth, Person::setDateOfBirth);
DateValidator检查此人是否至少18岁

问题是,如果我使用Datepicker,它集成在DateField中,如果用户年龄小于18岁,则不会向用户显示验证错误。但当我输入日期并按enter键或切换到另一个输入字段时,会出现验证错误


当通过日期选择器提供输入时,如何实现显示验证错误?

显然
验证器
无法管理值更改事件。您可以自己这样做:

date.addValueChangeListener( event -> 
        validate( event.getSource().getDefaultValidator(), event.getValue() ) );
还有一些示例
validate()
函数:

private void validate(Validator validator, LocalDateTime dateTime)
{
    validator.apply(dateTime, ...);
}

显然,
Validator
无法管理ValueChange事件。您可以自己这样做:

date.addValueChangeListener( event -> 
        validate( event.getSource().getDefaultValidator(), event.getValue() ) );
还有一些示例
validate()
函数:

private void validate(Validator validator, LocalDateTime dateTime)
{
    validator.apply(dateTime, ...);
}