Добавление подсказки в TextField
Я хочу добавить TextField
со встроенным текстом подсказки, приглашением пользователя и заполнителем до тех пор, пока пользователь не введет текст. Текст подсказки исчезает, когда TextField находится в фокусе, и вновь появляется, если TextField теряет фокус и текст не вводится.
Сначала я думал, что это будет общая функция для Vaadin TextFields, но это не так. Сейчас я ищу способ реализовать собственное расширение TextField для добавления этой функции. Но я застрял.
Мой вопрос: если кто-то здесь делал это раньше или инстинктивно знает, как это должно быть сделано?
Вот как далеко я зашел:
package com.smarttrust.m2m.gui.admin;
import com.vaadin.event.FieldEvents.FocusEvent;
import com.vaadin.event.FieldEvents.FocusListener;
import com.vaadin.terminal.gwt.client.ui.VCalendarPanel.FocusChangeListener;
import com.vaadin.ui.TextField;
public class M2MHintTextField extends TextField implements FocusListener {
private final String hint;
FocusListener listener = new FocusListener() {
@Override
public void focus(FocusEvent event) {
// TODO Auto-generated method stub
}
};
public M2MHintTextField(final String hint) {
super(hint);
this.hint = hint;
super.addListener(this.listener);
}
@Override
public void focus(FocusEvent event) {
// TODO Auto-generated method stub
}
}
1 ответ
Встроенная функция
После некоторых исследований я обнаружил, что это интегрированная функция во всех элементах управления вводом (TextField, TextArea, DateField, ComboBox).
Ваадин Флоу (Ваадин 10)
Эта функция является свойством под названием Placeholder.
Вы можете при желании передать текст заполнителя в конструктор TextField
вместе с необязательным начальным значением.
new TextField( "label goes here" , "hint goes here" )
Или вызвать сеттер и геттер: TextField::setPlaceholder
а также TextField.getPlaceholder
,
myTextField.setPlaceholder( "Hint goes here" ) ;
Ваадин 8
Эта функция является свойством под названием Placeholder.
Вызовите методы получения / установки: TextField::getPlaceholder
а также TextField.setPlaceholder
,
myTextField.setPlaceholder( "Hint goes here" ) ;
Ваадин 7
Эта функция является свойством InputPrompt.
Вызовите методы получения / установки: TextField::setInputPrompt
а также TextField::getInputPrompt
,
myTextField.setInputPrompt("Hint goes here");