Senha em jTextField [RESOLVIDO]

5 respostas
lucaslzl

Bom Dia, alguém pode me dizer como colocar em um jTextField “*” para quando o usuário digitar a senha aparecer esse caractere no lugar? Tentei usar o jPasswordField mas não gostei muito.

Obrigado.

5 Respostas

F

Qual o problema do JPassword?

E

O problema que muitos encontram no JPasswordField é que ele lhe indica usar um método chamado “getPassword”, que em vez de retornar uma String, volta um char[].

E quando o pessoal converte esse char[] para uma String sem pensar direito (usando toString() ou concatenando com uma string vazia), acaba obtendo sempre algo como “[C@123bdef0” ou coisa parecida, em vez da String desejada.

Nesse caso, use new String(___.getPassword()) onde ___ é o nome da variável do tipo JPasswordField. Isso funciona direitinho, em vez de usar “toString”;

L

Sim, você está certo.

Murad

Segundo o livro da Kathy Sierra o motivo dele retornar um char array em vez de uma string é poder verificar a senha e remove-la da memória logo em seguida.
Se você trabalhar com Strings que são estáticas após o uso a senha pode ficar em alguma parte da memória podendo ser obtida de alguma forma.

lucaslzl

Obrigado pela ajuda, mais tarde testarei o que o entanglement disse. E era esse mesmo o meu problema.

Criado 16 de maio de 2012
Ultima resposta 16 de mai. de 2012
Respostas 5
Participantes 5