Java - espace réservé sur textfield
Je suis en train de créer une interface graphique avec Swing. Mon problème est que j'ai un textfield, mais je veux qu'il ait un "espace réservé" (comme en html). J'ai lu ici et là que cela peut être fait en remplaçant la peinture() de l'objet textfield.
Depuis mon code est généré, j'ai découvert que j'ai besoin d'utiliser la "Création Personnalisée de Code" pour remplacer le code qui a été généré.
Voici ce que j'ai mis dans la "Création Personnalisée champ" Code
new javax.swing.JTextField()
{
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
{
if ( test == null || test.length() < 1 ) {
g.setColor( Color.red );
g.drawString(hint, 0, 0);
}
g.setColor(Color.BLACK);
super.paint(g);
}
}
Cela génère la sortie suivante
javax.swing.JTextField username = new javax.swing.JTextField()
{
String test = super.getText();
String hint = "Username";
public void paint(Graphics g)
{
if ( test == null || test.length() < 1 ) {
g.setColor( Color.red );
g.drawString(hint, 0, 0);
}
g.setColor(Color.BLACK);
super.paint(g);
}
};
Pour l'instant je vois le textField mais il n'y a rien en elle, peut-être que j'ai besoin d'ajouter une fonction sur un événement, mais je ne suis pas sûr.
Je vous serais reconnaissant si quelqu'un pouvait donner un coup de main.
EDIT : Voici une démo de ce que je veux faire : http://davidwalsh.name/demo/html5-placeholder.php
OriginalL'auteur Jordashiro | 2012-10-23
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé ceci sur l'oracle des forums.
https://forums.oracle.com/forums/thread.jspa?threadID=1349874
forums.oracle.com/forums/thread.jspa?threadID=1349874
jolie trouvaille , je donnerais
Le lien que vous avez fourni travaillé , peut-être mettre une autre réponse à ce lien si la solution est claire
OriginalL'auteur Itchy Nekotorych
Je utiliser pour remplacer les champs de texte méthode de peinture, jusqu'à ce que je me suis retrouvé avec plus personnalisé des champs de texte alors que je voulais vraiment...
Puis j'ai trouvé cette invite API qui est simple à utiliser et ne nécessite pas de s'étendre à tous les composants. Il a également une belle "copain" de l'API
Cela a maintenant été inclus dans le SwingLabs, SwingX bibliothèque ce qui rend encore eaiser à utiliser...
C'est en fait partie de la dernière SwingX bibliothèque!
OriginalL'auteur MadProgrammer
De l'essayer.
Être conseillé, le nom du champ de texte est "txtUserName". Vous pouvez voir la sortie de ce genre.
"User Name"
?Il n'y a pas de problème. Il est considéré comme un nom.
OriginalL'auteur Panduka Nandara