Я создал TextField
с TextChangeListener
. Когда пользователь вводит определенные значения (в данном случае «admin»), тогда addStyleName
вызывается в этом поле, и цвет шрифта становится красным. Но после этого значение остается пустым, и каждый введенный символ очищается.
Вот код приложения. Почему после добавления нового стиля в TextField
его значение меняется?
public class VaadintestApplication extends Application {
@Override
public void init() {
Window mainWindow = new Window("Vaadintest Application");
setTheme("test");
TextField textField = new TextField("username");
textField.setEnabled(true);
textField.setTextChangeEventMode(TextChangeEventMode.EAGER);
textField.addListener(new TextChangeListener() {
public void textChange(TextChangeEvent event) {
if ("admin".equals(event.getText())) {
((TextField) event.getComponent()).addStyleName("text-error");
} else {
((TextField) event.getComponent()).removeStyleName("text-error");
}
}
});
mainWindow.addComponent(textField);
setMainWindow(mainWindow);
}
}