Problemas com JPasswordField (comparação de Strings)

Olá Pessoal,

Seguinte, tenho um formulário onde a pessoa que vai se cadastrar deve digitar sua senha duas vezes (confirmação). O problema é que não estou conseguindo comparar as strings que são colocadas nesse tipo de campo. Estou usando o método getPassword(), mas parece que da forma que estou usando não dá certo :slight_smile:

Veja o código:

public void actionPerformed(ActionEvent event)
	{
	    String str1 = passwd1.getPassword().toString();
	    String str2 = passwd2.getPassword().toString();
	    if(str1.equals(str2) == false)
	    {
	        System.out.println(passwd1.getText());
	        System.out.println(passwd2.getText());
	        JOptionPane.showMessageDialog( null,"As senhas não conferem");
	        return;
	    }

            /* ... */     

	    TempUser user = new TempUser(text1.getText(),
	            passwd2.getText().toString(),text2.getText());
	    System.out.println(user);
	}

Agradeço se puderem responder.

Digitando Teste num JPasswordField

System.out.println(f.getText());
System.out.println(f.getPassword().toString());

saiu isso:

Teste
[C@a31e1b

Logo, acho que vc deveria pegar com getText() ao inves de getPassword.

Opa!! Erro…rss… fiz cáca tb…

getText() tá deprecated.
O erro é que não se deve dar .toString no array de char.
Use o new String() passando o array como parametro. Ai funcionou legal.

String s = new String(f.getPassword());
System.out.println(s);

Output:

Teste

Beleza, resolveu!