L'ajout de l'indice de TextField

Je veux ajouter un TextField avec un soupçon de texte, une invite utilisateur, un espace réservé jusqu'à ce que l'utilisateur entre du texte. Le texte de l'invite disparaît lorsque le Champ est concentré et ré-apparaît si le Champ perd le focus et le texte n'est pas entré.

J'ai d'abord pensé que ce serait une fonctionnalité générique pour Vaadin TextFields, mais qui ne semble pas être le cas. Maintenant, je suis à la recherche d'un moyen de mettre en œuvre ma propre extension de la zone de texte pour ajouter cette fonctionnalité. Mais je suis coincé.

Ma question est si quelqu'un ici l'a fait avant ou savent instinctivement comment cela devrait être fait?

C'est à quel point je suis venu:

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

    }
}
Après quelques recherches, j'ai trouvé que c'est une fonctionnalité intégrée dans tous les contrôles de saisie (Champ de texte, TextArea, DateField, ComboBox). Il est appelé "invite", pas besoin de le créer encore une fois. textField.setInputPrompt("Conseil");
Si vous avez résolu votre problème, ajoutez-le à la les réponses ci-dessous et de les accepter. De cette façon, d'autres avec le même problème pouvez dupliquer vos résultats.

OriginalL'auteur AndroidHustle | 2011-08-10