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.
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.
Qual o problema do JPassword?
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”;
Sim, você está certo.
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.
Obrigado pela ajuda, mais tarde testarei o que o entanglement disse. E era esse mesmo o meu problema.