Exemple de texte dans le component swing jtextfield
Je suis à la recherche d'un moyen de mettre des exemple de texte dans un swing component swing jtextfield et l'ont grisé. L'exemple de texte devrait alors disparaître dès que quelque chose est entré dans le champ texte. Qu'un peu similaire à ce que stackoverflow n'lorsqu'un utilisateur est de poster une question avec le champ titre.
J'aimerais qu'il était déjà étendu la mise en œuvre de component swing jtextfield pour que je puisse le placer dans un simple remplacement. Rien de swingx serait de travailler. Je suppose que si il n'y a pas un moyen facile de faire ce que mon option sera probablement de remplacer la méthode paint de component swing jtextfield faire quelque chose de cette façon, peut-être.
Grâce
OriginalL'auteur startoftext | 2011-02-18
Vous devez vous connecter pour publier un commentaire.
La Texte De L'Invite classe fournit les fonctionnalités sans l'aide d'un custom component swing jtextfield.
OriginalL'auteur camickr
Si vous pouvez utiliser des librairies, les composants Swing de Jide logiciel ont ce que vous cherchez; elle est appelée LabeledTextField (javadoc) et il fait partie de la JIDE Commune de Couche (Projet Open Source) - ce qui est gratuit. Il fait quoi mklhmnn suggéré.
OriginalL'auteur Daniel Teply
Comment initialiser le champ de texte avec le texte par défaut et lui donner un accent auditeur, de sorte que lorsque la mise au point est gagné, si le texte .est égal à la valeur par défaut de texte, appel selectAll() sur le component swing jtextfield.
OriginalL'auteur Hovercraft Full Of Eels
Lieu de les ignorer, de mettre une valeur dans le champ ajouter un
KeyListener
qui permettrait de supprimer la valeur lorsqu'une touche est enregistré. Peut-être aussi à une modification de l'avant-plan.Vous pourriez conclure dans votre propre
JTextField
classe qui prendrait le texte par défaut dans un constructeur.Je ne voudrais pas ajouter cet exemple de texte dans le champ de valeur car il y a alors des risques de l'utilisation de la getText() récupération exemple de texte
J'ai pensé à un focus auditeur de la première, mais dans le titre d'exemple, que l'OP cité comme exemple, le texte ne disparaît pas de l'accent mais au lieu de cela lorsque vous commencez à taper. Si vous n'avez permettent coller un ajout d'un DocumentListener pourrait être une meilleure solution.
le getText() la méthode pourrait être remplacée pour éviter l'exemple de texte d'être renvoyé s'il n'avait pas été saisie.
OriginalL'auteur jzd
pourquoi? Pouvez-vous expliquer ou de donner une référence?
car paintComponent sont appelés 1. en interne lors de JComponent nécessaire pour repaint(), 2. après appeler repaint(), 3. de tous les souris et les événements de Clavier, 4. lors de la Hiérarchie ou du Conteneur (ajouter JComponents, redimensionner e.j'.) sont modifiés ou tiré des événements par programmation, 5. devrait être jusqu'à la latence dans le système d'exploitation Natif (surcharge de cette actualisation ratio de geler la peinture de), 6 de chaque ou de cet événement pour créer un nouveau JLabel, ont pour le calcul OutOfMemoryExceptions trop, 7, la même question n'a pas de charger une image à partir de ce bloc, à préparer en tant que variable locale, et seulement de ramassage de tableau ou par nom de variable
Déplacé le JLabel à l'extérieur, je vous remercie pour elle.
Débogage montre que l'actuelle paintComponent() de frais généraux est inappreciable sur la plupart des invocations. Maintenant, je setBounds() uniquement lorsqu'ils ont changé (si l'EDT zikmu la même quantité de temps que si setBounds() ont été effectuées à l'extérieur).
OriginalL'auteur ignis
Vous ne pouvez pas faire cela avec un simple champ de texte, mais vous pouvez mettre un handicapé
JLabel
sur le dessus de laJTextField
et de le cacher si le champ de texte a le focus.OriginalL'auteur Mot
De faire comme ceci:
Définir la chaîne avec le texte initial que vous aimez et configurer votre TextField:
Ajouter un Accent Auditeur à votre TextField, qui sélectionne tout le contenu de la zone de texte si elle a encore de la valeur initiale. Tout ce que vous pouvez taper remplace l'ensemble du contenu, puisqu'il est sélectionné.
OriginalL'auteur Costis Aivalis