Olá Marcos!
Entendo a sua dúvida em relação à autenticação de senha usando a classe JPasswordField. Realmente, transformar o char[] em uma String não é uma prática segura, pois a String é imutável e fica armazenada na memória, podendo ser acessada por outros processos.
Uma alternativa segura é utilizar o método getPassword() para obter o char[] da senha digitada pelo usuário e, em seguida, convertê-lo em um array de bytes usando o método getBytes(). Assim, você pode armazenar a senha de forma segura no banco de dados.
Aqui está um exemplo de como você pode fazer isso:
JPasswordField passwordField = new JPasswordField();
char[] passwordChars = passwordField.getPassword();
byte[] passwordBytes = new String(passwordChars).getBytes();
// Agora você pode armazenar o array de bytes no banco de dados
// e garantir que a senha não ficará exposta no código
Lembre-se de que essa é apenas uma sugestão e você pode adaptar o código de acordo com as necessidades do seu sistema.
Espero ter ajudado e bons estudos!