format date when typing

I have one field birthday in my form, so I put one dateField but it`is difficult to my user to find the oldest years, so I need to when my user is typing I have to formater the value, so I try to use this:

this.setImmediate(true);
            this.addValueChangeListener(new Property.ValueChangeListener() {
                @Override
                public void valueChange(Property.ValueChangeEvent event) {
                    String value = (String) event.getProperty().getValue();
                    valida(value);
                }
            });

but he only execute the valueChange, when I select one date, How can I execute my method when user is typing