4

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

    }
}
4

1 回答 1

14

内置功能

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

Vaadin 流 (Vaadin 10)

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

您可以选择将占位符文本以及可选的初始值传递给 的构造函数。TextField

new TextField( "label goes here" , "hint goes here" ) 

或者调用 setter 和 getter:TextField::setPlaceholderTextField.getPlaceholder.

myTextField.setPlaceholder( "Hint goes here" ) ;

瓦丁 8

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

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

myTextField.setPlaceholder( "Hint goes here" ) ;

瓦丁 7

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

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

myTextField.setInputPrompt("Hint goes here"); 
于 2011-08-11T07:54:13.237 回答