添加提示到TextField

And*_*tle 4 java prompt hint textfield vaadin

我想添加一个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

    }
}
Run Code Online (Sandbox Code Playgroud)

And*_*tle 14

内置功能

经过一些研究,我发现这是所有输入控件(TextField,TextArea,DateField,ComboBox)中的集成功能.

Vaadin Flow(Vaadin 10)

该功能是一个名为Placeholder的属性.

您可以选择将占位符文本与可选的初始值一起传递给构造函数TextField.

new TextField( "label goes here" , "hint goes here" ) 
Run Code Online (Sandbox Code Playgroud)

或者打电话给setter和getter:TextField::setPlaceholderTextField.getPlaceholder.

myTextField.setPlaceholder( "Hint goes here" ) ;
Run Code Online (Sandbox Code Playgroud)

瓦丁8

该功能是一个名为Placeholder的属性.

调用getter/setter方法:TextField::getPlaceholderTextField.setPlaceholder.

myTextField.setPlaceholder( "Hint goes here" ) ;
Run Code Online (Sandbox Code Playgroud)

瓦丁7

该功能是一个名为InputPrompt的属性.

调用getter/setter方法:TextField::setInputPromptTextField::getInputPrompt.

myTextField.setInputPrompt("Hint goes here"); 
Run Code Online (Sandbox Code Playgroud)