Я использую Vaadin и у меня есть набор текстовых полей в форме. У текстовых полей есть focusListeners, который вызывает метод, который фокусирует весь текст в текстовом поле, если оно есть.
Моя проблема заключается в том, что автоматический выбор работает буквально в половине случаев. Если я вставлю некоторый текст в текстовое поле, щелкнет за пределами текстового поля, а затем щелкнет внутри него, текст будет выделен. Однако, если я снова щелкну снаружи и затем в текстовом поле, текст будет выделен на долю секунды, чтобы в нем был только маркер ввода, где бы я ни щелкал в тексте.
Вот код:
class FormTextField extends FormLayout {
private static final long serialVersionUID = -2738069810605965508L;
String caption;
final STextField textField = Cf.formTextField(caption, "", 22);
public FormTextField(String textField) {
addStyleName("panelform");
setWidth(formWidth, UNITS_EM);
this.textField.setCaption(textField);
this.textField.setImmediate(true);
this.textField.addListener(new FieldEvents.FocusListener() {
@Override
public void focus(FocusEvent event) {
textFieldSelectAll();
}
});
addComponent(this.textField);
}
private void textFieldSelectAll() {
this.textField.selectAll();
}
public STextField getTextField() {
return textField;
}
}
}
Мне очень интересно узнать, знаком ли кто-либо из вас с этой проблемой и смог ли ее решить?
Если вам нужна дополнительная информация от меня, пожалуйста, спросите!