2010-09-14 4 views
2

Je développe une applet simple qui a une interface de connexion simpe.Façon simple d'avoir un hybride JTextField/JPasswordField?

Et pour être concis dans l'espace, j'ai deux JTextFields pour nom d'utilisateur et mot de passe, que j'utilise aussi comme étiquettes. Pour commencer, le nom d'utilisateur JTextField sera pré-rempli avec un texte en gris indiquant "nom d'utilisateur" et le mot de passe JTextField pré-rempli avec "mot de passe simple".

Ensuite, dès que le JTextField obtient le focus, j'efface le texte pré-rempli et définit la couleur du texte en noir. Similaire à la boîte de recherche de stackoverflow, mais en swing.

Maintenant, pour la sécurité, je voudrais masquer le champ de mot de passe lorsque le mot de passe JTextField obtient le focus (mais bien sûr, le texte pré-rempli est toujours lisible pour commencer). JPasswordField n'autorise pas le basculement du masque/démasquer.

Des idées pour un moyen simple d'obtenir cette fonctionnalité dans mon applet simple?

Répondre

7

Vous pouvez désactiver le caractère d'écho de masquage avec setEchoChar ((char) 0); comme indiqué dans le JavaDoc.

Un exemple

final JPasswordField pass = new JPasswordField("Password"); 
    Font passFont = user.getFont(); 
    pass.setFont(passFont.deriveFont(Font.ITALIC)); 
    pass.setForeground(Color.GRAY); 
    pass.setPreferredSize(new Dimension(150, 20)); 
    pass.setEchoChar((char)0); 
    pass.addFocusListener(new FocusListener() { 

     public void focusGained(FocusEvent e) { 
      pass.setEchoChar('*'); 
      if (pass.getText().equals("Password")) { 
       pass.setText(""); 
      } 
     } 

     public void focusLost(FocusEvent e) { 
      if ("".equalsIgnoreCase(pass.getText().trim())) { 
       pass.setEchoChar((char)0); 
       pass.setText("Password"); 
      } 
     }}); 

Greetz, Ghad

+0

mauvais sur moi pour ne pas lire complètement le javadoc! J'ai regardé son code, même étendu, mais je n'ai jamais pris la peine de lire le javadoc pour setEchoChar! Merci GHad! – Patrick

Questions connexes