Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Password vs textField

Hola
Me pueden ayudar a resolver este inconveniente:
Estoy comparando Password Field con un String de la siguiente forma
String clave='ramon';
if(clave.equals(tpassword.getPassword())){
/////////////////77
}
resulta que nunca me van a coincidir porque los Password Field tienen algun tipo de encriptacion.

¿Como puedo hacerlo?

septiembre 13, 2016 | Registered Commenterdjdimosa

silo entendí es correcto

Debería ser de esta forma

String clave="radon";

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(pasword.equals(clave)){
JOptionPane.showMessageDialog(rootPane, "la clave es correcto");
} else {
JOptionPane.showMessageDialog(rootPane, "clave incorrecto");
}
}

saludos

septiembre 14, 2016 | Registered Commenterunknown

Hola.

Si es un JPasswordField

String clave='ramon';
if(clave.equals(new String(tpassword.getPassword()))){
/////////////////77
}

Esto es porque lo que te retorna getPassword es un array de caracteres no un objeto String.

Nos cuentas

Saludos.

Fuente:
https://docs.oracle.com/javase/7/docs/api/javax/swing/JPasswordField.html

septiembre 14, 2016 | Unregistered CommenterJhosep

Hola jhosep, muchas gracias por responder
He probado como tu indicaste pero no funciona.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

if(tcampodetexto.equals(new String(tpassword.getPassword()))){
JOptionPane.showMessageDialog(null,"Ha funcionado");
}
else
JOptionPane.showMessageDialog(null,"No funciona");
}
}

septiembre 16, 2016 | Registered Commenterdjdimosa

package components;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

public class NewJFrame extends javax.swing.JFrame {

private String clave = "radon";

public NewJFrame() {
initComponents();
jPasswordField1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
char[] password = jPasswordField1.getPassword();
boolean equals = Arrays.equals(password, clave.toCharArray());

System.out.println(equals);
}
});

}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jPasswordField1 = new javax.swing.JPasswordField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(jPasswordField1, java.awt.BorderLayout.CENTER);

pack();
}// </editor-fold>

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new NewJFrame().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JPasswordField jPasswordField1;
// End of variables declaration
}

septiembre 16, 2016 | Registered Commenterchoces

Hola @djdimosa, creo que este mensaje ya no la veras, pero para quien interese.

la solución que te dio @choces es correcta, y la mía tambien, sin temor a equivocarme tcampodetexto es una variable de un JTextField, por eso no te sirve. porque lo que tienes que comparar es un String. tu código tendría que ser así:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

if(tcampodetexto.getText().equals(new String(tpassword.getPassword()))){
JOptionPane.showMessageDialog(null,"Ha funcionado");
}
else
JOptionPane.showMessageDialog(null,"No funciona");
}
}

Saludos.

septiembre 25, 2016 | Unregistered Commenterjhosep

Hola jhosep, muchas gracias por ineterés de ayurme, he probado la ultima opcion que indicaste y me ha funcionado muy bien.

:)
Gracias...

septiembre 28, 2016 | Registered Commenterdjdimosa